
随着工业产品智能化水平的不断提高,日常生活生活中智能设备普及率也越来越高,嵌入式软件市场也越来越大。
软件检测实验室要想抓住市场发展动向,开辟嵌入式软件测试相关的业务,可以参考的重要标准就是GJB-Z-141-2004《军用软件测试指南》。
软件检测实验室申请嵌入式软件测试CNAS/CMA相关资质,也大多依据该标准。
GJB-Z-141-2004标准从整体上将测试的等级分为了单元测试、部件测试、配置项测试、系统测试。
针对每一类测试都从测试对象和目的、测试的组织和管理、技术要求、测试内容、测试环境、测试方法、进入条件、结束条件、测试过程、测试文档,这十大方面进行了介绍。
因为回归测试可出现在上述每个测试级别中,并贯穿于整个软件生存周期,所以最后又针对回归测试单独也进行了详细说明,包括测试对象和测试目的、进入条件、单元回归测试、部件回归测试、配置项回归测试和系统回归测试。
在实际的测试过程中,可根据软件的规模、类型、安全性关键等级去选择合适的测试级别。
在测试方法上介绍了静态测试方法和动态测试方法,像静态测试方法中的代码审查、代码走查、静态分析,动态测试方法中的一些黑盒和白盒测试方法。
对于软件测试用例、软件测试记录、软件问题报告单也给出了参考的模版,软件测试实验室可以参考标准中给出的模版,快速建立起规范、标准的原始记录。
标准中还介绍了一些嵌入式软件测试过程中会用到的数据模型,如斯奈德蕴德模型、广义指数模型、穆沙/奥库姆脱对数泊松执行时间模型、列透务德/弗尔洛模型等。
在GJB-Z-141-2004标准中,规定了四个测试阶段:测试策划、测试设计和实现、测试执行和测试总结。

测试策划
在测试策划阶段,确定需要测试的内容或质量特性;确定测试的充分性要求;提出测试的基本方法;确定测试的资源和技术需求;制定测试资源计划和测试进度计划。
1、测试的内容或质量特性

(依据 GJB 5236-2004 对软件质量子特性的定义和传统测试内容分类的对应关系)
2、测试的充分性要求
根据软件单元的重要性、软件单元测试目标和约束条件,确定测试应覆盖的范围及每一范围所要求的覆盖程度(如,分支覆盖率、语句覆盖率、功能覆盖率、单元的每一软件特性应至少被一个正常的测试用例和一个异常的测试用例所覆盖);
3、测试方法:
标准中给出的测试的基本方法分为静态测试方法和动态测试方法。静态测试方法包括检查单和静态分析方法,对文档的静态测试方法主要是以检查单的形式进行,而对代码的静态测试方法一般采用代码审查、代码走查和静态分析,静态分析一般包括控制流分析、数据流分析、接口分析和表达式分析。
动态测试方法一般采用白盒测试方法和黑盒测试方法。黑盒测试方法一般包括功能分解、边界值分析、判定表、因果图、随机测试、猜错法和正交试验法等;白盒测试方法一般包括控制流测试(语句覆盖测试、分支覆盖测试、条件覆盖测试、条件组合覆盖测试、路径覆盖测试)、数据流测试、程序变异、程序插桩、域测试和符号求值等。
4、测试资源和技术需求
包括软件(如操作系统、编译软件、静态分析软件、测试数据产生软件、测试结果获取和处理软件、测试驱动软件等)、硬件(如计 算机、设备接口等)、人员数量、人员技能等。
5、测试资源计划和测试进度计划
对软件单元测试计划进行评审。审查测试的范围和内容、资源、进度、各方责任等是否明确、测试方法是否合理、有效和可行,测试文档是否符合规范,测试活动是否独立。一般情况下,由软件的供方自行组织评审,评审细则也自行制定。在软件单元测试计划通过评审后,进入下一步工作;否则,需要重新进行单元测试的策划。
测试设计与实现
分析测试用例集的层次结构,选取和设计测试用例;获取并验证测试数据;根据测试资源、风险等约束条件,确定测试用例执行顺序;获取测试资源,开发测试软件;建立并校准测试环境;进行测试就绪审查,主要审查测试计划的合理性和测试用例的正确性、有效性和覆盖充分性,审查测试组织、环境和设备工具是否齐备并符合要求。在进入下一阶段工作之前,应通过测试就绪评审。
测试执行
执行测试用例,获取测试结果;分析并判定测试结果。同时,根据不同的判定结果采取相应的措施;对测试过程的正常或异常终止情况进行核对,并根据核对结果,对未达到测试终止条件的测试用例,决定是停止测试,还是需要修改或补充测试用例集,并进一步测试。
测试总结
评估测试效果和被测软件项,描述测试状态。如,实际测试与测试计划和测试说明的差异、测试充分性分析、未能解决的测试事件等;描述被测软件项的状态,如,被测软件与需求的差异,发现的软件错误等;最后,完成软件测试报告,并通过测试评审。
以上就是针对GJB-Z-141-2004标准的解读,希望对你有所帮助。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。