嵌入式软件测试标准GJB/Z 141解读(三)测试工具的选择

《GJB/Z 141-2004 军用软件测试指南》是软件实验室在申请嵌入式软件测试领域的相关资质所需要依据的一步国家标准。在该标准中,介绍了嵌入式软件测试的全流程,单元测试、部件测试、配置项测试、系统测试的测试过程以及测试内容做了介绍。本文我们主要介绍测试工具的选择部分。

在《GJB/Z 141-2004 军用软件测试指南》标准中,把嵌入式软件测试过程中可能会用到的工具分为了三类:静态测试工具、动态测试工具和支持测试活动的其他工具。要了解静态测试工具和动态测试工具,首先我们需要先对静态测试和动态测试的概念做一个初步的了解。

静态测试:

静态测试方法包括检查单和静态分析方法,对文档的静态测试方法主要是以检查单的形式进行,而对代码的静态测试方法一般采用代码审查、代码走查和静态分析,静态分析一般包括控制流分析、数据流分析、接口分析和表达式分析。

应对软件代码进行审查、走查或静态分析;对于规模较小、安全性要求很高的代码也可进行形式化证明。

动态测试:

动态测试方法一般采用白盒测试方法和黑盒测试方法。黑盒测试方法一般包括功能分解、边界值分析、判定表、因果图、随机测试、猜错法和正交试验法等;白盒测试方法一般包括控制流测试(语句覆盖测试、分支覆盖测试、条件覆盖测试、条件组合覆盖测试、路径覆盖测试)、数据流测试、程序变异、程序插桩、域测试和符号求值等。

在软件动态测试过程中,应采用适当的测试方法,实现测试要求。配置项测试和系统测试一般采用黑盒测试方法;部件测试一般主要采用黑盒测试方法,辅助以白盒测试方法;单元测试一般采用白盒测试方法,辅助以黑盒测试方法。

静态测试工具指的是对软件需求、结构设计、详细设计和代码进行评审、走查和审查的工具。

如复杂度分析、数据流分析、控制流分析、接口分析、句法和语义分析等工具。针对软件需求、结构设计、详细设计的静态分析工具很少。

在通用软件测试领域我们常用的静态代码测试工具像Coverity、Klocwork对嵌入式软件的适配程度相较于Fortify SCA要更好一些。

动态测试工具需要支持执行测试用例和评估测试结果的工具,包括支持选择测试用例、设置环境、运行所选择测试、记录执行活动、故障分析和测试工作有效性评估等。如覆盖分析、捕获和回放、存储器测试、变异测试、仿真器及性能分析、测试用例管理等工具。测试捕获和回放及数据生成器可用于测试设计。

动态测试需配合交叉编译工具链(如IAR、Keil)和调试探针(J-Link、ULINKpro)使用。军工项目更建议选择VectorCAST或LDRA确保工具链符合GJB标准要求。

支持测试过程活动的其它工具指的是,在嵌入式代码测试的过程中,还需要一些支持测试计划、测试设计和整个测试过程的工具。如测试计划生成、测试进度和人员安排评估、基于需求的测试设计、测试数据生成问题管理和测试配置管理等工具。复杂度分析可用于测试计划的制定,捕获和回放覆盖分析可用于测试设计与实现。

《GJB/Z 141-2004 军用软件测试指南》要求,在进行嵌入式软件测试的过程中,要尽量采用测试工具,避免或减少人工工作。为让工具在测试工作中发挥应有的作用,应确定工具的详细需求,并制定统一的工具评估、采购(开发)、培训、实施和维护计划。

选择软件测试工具应考虑如下因素:

a) 软件测试工具的需求及确认。

  1. 应明确对测试工具的功能、性能、安全性等需求,并据此进行验证或确认。

  2. 可通过在实际运行环境下的演示来确认工具是否满足需求,演示应依据工具的功能和技术特征、用户使用信息(安装和使用手册等)以及工具的操作环境描述等进行。

b) 成本和收益分析。

  1. 估计工具的总成本,除了最基本的产品价格,总成本还包括附加成本,如工具的挑选、安装、运行、培训、维护和支持等成本,以及为使用工具而改变测试过程或流程的成本等。

  2. 分析工具的总体收益,如工具的首次使用范围和长期使用前景、工具应用效果、与其它工具协同工作所提高的生产力程度等。

c) 测试工具的整体质量因素。

  1. 易用性;

  2. 互操作性;

  3. 稳定性;

  4. 经济实用性

  5. 维护性。

以上就是在《GJB/Z 141-2004 军用软件测试指南》标准中针对测试工具部分的介绍,后面会针对测试内容部分展开介绍敬请继续关注,如需嵌入式软件测试工具部署方案,可私信我获取。

相关推荐
川石课堂软件测试3 小时前
性能测试|JMeter常用线程组设置策略
大数据·数据库·功能测试·测试工具·jmeter·mysql·单元测试
测试修炼手册4 小时前
[测试工具] Axhub MCP:把 Axure PRD 变成测试用例
测试工具·测试用例·axure
川石课堂软件测试5 小时前
什么是埋点测试,app埋点测试怎么做?
功能测试·测试工具·华为·小程序·单元测试·appium·harmonyos
程序员三藏5 小时前
接口测试用例设计
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
君科程序定做1 天前
基于 Codex + Selenium 的 CNKI 博士论文开题调研自动化流程
selenium·测试工具·自动化
废弃的小码农1 天前
APP测试--adb使用介绍
python·测试工具·adb
三千花灯1 天前
【Playwright】安装
人工智能·测试工具
@zulnger1 天前
自动化测试框架:Selenium 剖析(1.2)
selenium·测试工具