嵌入式软件测试标准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 军用软件测试指南》标准中针对测试工具部分的介绍后面会针对测试内容部分展开介绍敬请继续关注如需嵌入式软件测试工具部署方案可私信我获取。