Cantata++主程序包括测试脚本自动生成器和管理器。测试脚本生成工具通过分析源代码得到参数和数据信息,连同自动产生的Stub打桩函数和Wrap封装函数,自动生成到测试脚本中。测试脚本完全使用C或C++语言构成,可重用。通过使用测试脚本管理器可以自动完成测试用例定义到测试脚本的转换。对于熟练的用户,可以直接利用CTH提供的库函数,直接编写C或C++语言的测试脚本。

  完全支持白盒测试和黑盒测试技术,通过脚本检查所有标准的和用户定义的类型,对期望和不期望的异常进行检查;重用继承类和模板实例的测试用例;为所有预期结果和实际结果的检查进行详细的测试分析。支持覆盖率分析,提供从语句覆盖级到MC/DC(DO-178BA)标准的度量。

  集成测试

  集成测试是软件的单元测试完成后进行的。Cantata++同样支持集成测试方法,进行调用序列,传递参数的检查。并且提供独特的封装功能,完成硬件错误注入的测试。提供Wrap技术,相对于打桩函数stub,封装函数,Wrap技术有以下优势:

  1)在被测模块中采用模拟的误码,避免真实代码的执行。模拟硬件问题,进行逆向测试。

  2)可以校验集成调用的执行过程Call序列,允许测试者控制被测软件的外部环境,以及检查调用其成员函数的执行是否正确(包括参数、执行的顺序)。

  3)允许真实调用某些成员函数,而封装另一些函数的调用,控制其输入和返回参数。

  另一款集成测试工具是McCabeTest。正如前一部分提到的,它可很直观地从整体上把握软件的结构,生成集成测试计划,通过插装被测试软件,得到被插装后的源代码。运行目标编译器,后测量覆盖率,产生覆盖率报告。

  通过被测试软件的结构图,直观地评估“测了多少”,深入得到代码级,以图形的方式标示已测代码和未测代码。支持MC/DC覆盖分析,满足DO178B-A标准。McCabeQA与McCabeTEST等组件组成McCabeIQ工具包,构成了一整套完整的白盒测试方案。

  确认测试和系统测试

  包括恢复测试、安全测试、强度测试、性能测试,已超出了本文讨论的范畴,本文暂不详述。

  结语

  嵌入式软件通常在主机环境执行多数的测试,只是在终确定测试结果和后的系统测试才移植到目标环境,这样可以避免发生访问目标系统资源上的瓶颈,也可以减少在昂贵资源如在线仿真器上的费用。另外,若目标系统的硬件由于某种原因而不能使用时,后的确认测试可以推迟直到目标硬件可用,这为嵌入式软件的开发测试提供了弹性。

  设计软件的可移植性是成功进行交叉测试的先决条件,它通常可以提高软件的质量,并且对软件的维护大有益处。本文提到的测试工具,都可以通过各自的方式提供测试在主机与目标之间的移植,从而使嵌入式软件的测试得以方便地执行。

  使用有效的测试策略可极大地提高嵌入式软件开发测试水平和效率,提高嵌入式软件的质量并降低成本。