基于winAMS、CasePlayer2嵌入式软件单元测试
摘要:论述软件测试工具winAMS、CasePlayer2在嵌入软件单元测试中的应用。介绍了软件测试工具的功能、代码插装原理、测试环境搭建、覆盖率测试、测试数据取得等相关技术研究及经验总结。
关键词:winAMS、CasePlayer2、嵌入式软件、单元测试、代码插装、测试环境、覆盖率
覆盖率专家winAMS源自日本gaio公司,gaio公司创始于1980年,公司早期开发编译器,随后开发了基于源代码分析和模拟技术的嵌入式软件测试工具。公司还有工程服务业务,为主要汽车制造商、大型汽车零部件供应商提供基于模型的开发支持、测试流程构建支持、工具导入及运用支持等业务。
嵌入式软件单元测试工具“覆盖率专家winAMS”、“CasePlayer2”拥有全球众多客户。工具针对实机代码进行测试,无需对原代码改动,搭建测试框架。工具取得了汽车功能安全(ISO26262)的工具认证,基本服务于日本所有汽车制造商及汽车供应商。
软件质量是软件的生命,它直接影响软件的使用与维护。随着计算机软件系统越来越广泛地应用与航空、航天、工业控制、交通等关系着国计民生的重要领域,人们对计算机软件质量的要求也就越来越高。计算机软件质量保证己成为现代软件工程的一项首要任务。软件测试是软件生存期中一个重要阶段,是软件质量保证的关键步骤。而软件单元测试又是软件测试过程中进行的最早的也是最基础的测试活动,它执行的好坏直接决定了软件生命周期的长短。
单元测试软件测试往往首先要对组成软件的每个单元进行测试,以确认每个单元能否正常工作。单元测试除进行功能测试外,主要测试单元的单元接口、局部数据结构、重要的执行路径、故障处理的路径等四项特征以及各项特征的边界条件。单元测试通常采用白盒测试方法,尽可能发现单元内部的程序错误,其中包括:逻辑覆盖、语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖等内容。
覆盖率专家winAMS支持市场主流的芯片,针对C/C++程序,实施以模块为单位的自动化测试。C程序以函数为单位,C++程序以类为单位。自动生成装函数,不需要搭建专用的测试环境,以实机代码为基础,借助静态解析工具CasePlayer2,自动生成测试最少的用例表,运行后生成测试结果,生成测试报告,生成C0、C1、MC/DC覆盖率报告。
虽然,从绝对的角度说,单元测试很重要,但是,从相对的角度来讲,小的代码量,简单固定的需求,个人开发,一锤子买卖等等都会让单元测试显得不那么重要,并且你一直开发的很舒服,这就是为什么有的人感受不到单元测试的重要性(这种情况下的确也许不用写单元测试)。记住,单元测试的威力更多不是体现在新代码的编写上,而是对已有代码的更改。