嵌入式软件测试——初探

软件测试级别包括单元测试,部件(集成)测试,配置项测试与系统测试。
单元测试:检查每个软件单位能否正确的实现设计说明中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种错误。
静态测试采用代码审查的方法时,通常要对寄存器的使用、程序格式、入口和出口的连接、程序语言的使用、存储器的使用等内容进行检查。
采用静态分析方法,通常对软件单元的功能、性能、接口、局部数据结构、独立路径、错误处理、边界条件和内存使用情况进行测试。
通常对软件单元接口的测试应先于其他内容的测试。嵌入式软件单元测试一般在宿主机环境中进行。
集成测试:检验嵌入式软件单元和软件部件间的接口关系,并验证软件部件是否符合设计要求。
集成测试主要采用黑盒测试和百盒测试相结合的方式。可在宿主机或目标机环境中进行。
配置项测试:检验软件配置项与软件需求规格说明的一致性。
系统测试:在真实的系统工作环境下检验完整嵌入式软件配置项是否能和系统正确连接,并满足软件研制任务书的功能和性能要求。系统测试采用黑盒测试技术,且要求与系统其余部件综合起来作为整体在目标机环境中进行。

静态测试:是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。方法包括:静态分析、代码分析、代码审查、质量度量等,不必运行被测代码,而是借助专用的软件工具对源程序进行各种分析。

在C/C++语言的标准中,未定义行为(undefined behavior)<程序执行了编译器无法检测到的错误是所表现出来的行为,国际标准不制定这类行为的规范>、未指明行为(unspecified behavior)<是指国际标准已经提供了两种或多种可行的方案,但对某种情况下选择哪种方案没有做进一步的要求;>、实现定义行为(implementation-defined behavior)<是由编译器的设计方案决定的所要采取的实现方式,一定程度上由实现定义行为所约束的实现方式可以自由选择,但必须写入使用手册并严格遵照执行。>和一些不安全的用法普遍存在。

避免C/C++语言中不安全因素的方法:遵照已制定的编程标准;从选定的安全子集来编写程序;
MISRA C 和MISRA C++ 是欧洲汽车工业针对嵌入式C和C++语言的应用所编写的安全子集,GJB8114 C/C++语言编程安全子集作为我国的国军标为军用嵌入式C/C ++语言编程确定了安全子集。

动态测试:
白盒测试:主要考虑程序的控制流测试和数据流测试,与代码覆盖率密切相关。代码覆盖率越高,测试越充分。
黑盒测试:也称功能测试,根据软件的用途和外部特征查找软件缺陷,不需要了解程序内部的结构。 优势:不依赖代码,只需根据需求,设计相应的测试用例,根据输出结果判断程序的功能和性能。
黑盒测试之前必须进行足够的白盒测试。

1、软件测试能力成熟度模型TMM
TMM定义了五个成熟度等级:初始级,定义级,集成级,管理和测量级,优化、预防缺陷和质量控制级。
2、嵌入式软件测试项目管理
嵌入式软件测试过程一般分为七个阶段:项目监理、测试需求分析和策划、测试设计和实现、测试执行、回归测试、测试总结、交付与归档。
嵌入式软件测试项目管理一般包括五项工作:测试项目的需求管理、项目策划、配置管理、质量保证和跟踪控制。

猜你喜欢

转载自blog.csdn.net/hushaoqiqimingxing/article/details/81047506