|
嵌入式测试小组主要为嵌入式开发企业提供第三方的嵌入式测试服务(嵌入式测试评价委托申请表)。
目前提供的测试服务主要有以下三种:
一、 单元测试
服务内容
·功能验证:验证单元模块功能的正确性。
·代码质量分析:分析源代码的代码质量。
·覆盖率分析:提供各类代码覆盖率检测,发现没有覆盖到的路径、分支等。
测试过程
·提供测试用例编写常用方法,如等价类法、边界值法,与具体应用结合产生测试用例集。
·为客户产生自动测试脚本,利用自动化测试工具自动执行,并自动校对测试结果。
·为客户提供嵌入式系统C/C++软件测试,根据客户的软硬件开发环境配置代码静态分析环境。
·根据客户需求定制测试错误或规则。
测试结果
·验证待测单元功能
·代码分析能够自动检查下面8种错误:
+企图读未初始的变量
+多线程应用中未保护数据的访问冲突
+对空指针和越界指针的引用
+对超界数组的访问
+非法类型转换(long to short, float to integer)
+非法的算数运算 (例,除零错误,负数开方)
+整数和浮点数的上溢出/下溢出
+不可达到的代码
+能够有效测试软件运行时错误,适合对代码健壮性,可靠性要求较高的嵌入式系统进行测试。
咨询建议
·为客户判断测试用例是否完备,提供各类代码覆盖率检测,发现没有覆盖到的路径、分支等。
·提前发现代码中潜在的错误,降低测试成本。
·能够发现测试用例不易发现的数组越界、非法的算数运算 (例,除零错误,负数开方)、浮点溢出等错误。
二、 集成测试
服务内容
·功能验证:验证各个模块之间的接口是否可靠,并验证功能的可靠性。
·代码质量分析:分析源代码的代码质量。
·性能分析:内存分析以及运行性能分析。
测试过程
·主机开发环境上完成的测试内容包括:功能验证和代码质量分析。功能验证包括,验证模块之间接口的可靠性已经功能的实现。另外可以对若干模块进行集成,同样分析其代码的质量。
·在目标机上进行主要模块的性能测试,内容包括:在软件测试过程中有效地监控代码覆盖率与在程序运行时实时动态的分析内存分配情况,识别内存漏洞(如申请空间而不释放,有内存空间闲置,释放无效指针和空指针),指明那些内存在什么地方在什么情况下被那些函数占用。另外还会列出运行过程中各个例程花费时间的列表。
测试结果
·验证接口的可靠性
·验证多模块的集成功能
·代码分析结果
·内存分析结果
·性能分析结果
咨询建议
·能够发现测试用例不易发现的数组越界、非法的算数运算 (例,除零错误,负数开方)、浮点溢出等错误。
·分析定位功能模块中的内存泄漏位置。
·性能分析指出哪些例程花费时间较多,与调试工具联合使用可以引导开发人员查看需要优化的特定函数,性能分析工具还可以引导开发人员发现在系统调用中存在的错误以及程序结构上的缺陷。
三、 系统测试
服务内容
·功能验证:验证系统的整体功能。
·性能分析:内存分析以及运行性能分析。
·功能验证:将硬件和软件集成在一起进行系统功能的测试。
测试过程
·这部分测试主要完成硬件和软件集成的功能测试。根据系统设计的需求设计测试用例,配置测试环境,执行测试,并根据测试阶段的实际情况进行回归测试。为有条件的测试提供自动化功能测试服务,自动采集系统输出,自动比对测试结果。
·该阶段的性能分析是针对系统在目标环境中运行时进行的,分析的内容与集成测试阶段的内容一致。
测试结果
·实际的功能实现情况
·内存分析结果
·性能分析结果
咨询建议
·功能的完整性
·定位系统的内存泄漏点
·提供需要优化的代码范围
四、
测试环境服务
测试环境-代码分析
·
测试类型:白盒测试,运用数学公式与抽象分析代码中潜在的错误
·
测试目的:提供代码质量的静态分析。
·
测试内容:检测程序中数据的访问冲突、空指针和越界指针、数组越界、不可达代码等服务,提高被测嵌入式软件的质量。
测试过程
为客户提供嵌入式系统 C/C++ 软件测试,根据客户的软硬件开发环境配置代码静态分析环境
根据客户需求定制测试错误或规则
及时反馈测试结果
测试结果
规则检测:检测代码是否符合国际编码标准 C99 或 MISRA (汽车工业标准)或国际航天标准等国际通用行业标准,提高代码质量与可靠性
运行时错误检测:提供非常高效的选择性(诊断出安全、不安全和死代码)测试结果并且极大的缩短彻底的代码评审的时间要求。
测试环境-性能分析
· 测试类型:白盒测试,运用数学公式与抽象分析代码中潜在的错误
· 测试目的:
对系统进行性能分析。
· 测试内容:
代码覆盖率,程序运行中实时动态的分析内存分配情况,各例程运行时占用 CPU 的情况。
测试过程
软件在线测试,在开发主机环境中进行,对代码进行插桩,可以获得程序在主机开发环境中的代码覆盖率、内存分配情况、例程运行时间。
硬件在线测试,用适配器或探针,直接连接到被测试系统,从目标板总线获取信号,为跟踪嵌入式应用程序,分析软件性能,测试软件的覆盖率以及内存的动态分配等提供了一个实时在线的高效率解决方案。
测试结果
提供常用的代码覆盖率指标
内存分配情况。 系统运行性能分析,列出系统运行中各例程占用 CPU 的时间。
测试优化
帮助识别内存漏洞,指出错误的隐患,并且定位出错的地方。
帮助开发人员选择代码优化的对象。
测试环境-
模块功能测试
· 测试类型:
灰盒测试
· 测试目的:
模块功能测试。
· 测试内容:
针对嵌入式软件开发的 C 和 C ++语言代码,提供代码在开发阶段的功能模块的测试,包括模块代码功能实现正确性测试、覆盖率检测等。
测试过程
提供测试用例编写常用方法,如等价类法、边界值法,与具体应用结合产生测试用例集
为客户产生自动测试脚本,利用自动化测试工具自动执行,并自动校对测试结果 测试结果
验证待测模块的功能
测试优化
为客户判断测试用例是否完备,提供各类代码覆盖率检测,发现没有覆盖到的路径、分支等。
提供自动回归测试。
|