嵌入式软件动态测试工具Tessy
Tessy是一个专门针对嵌入式软件的C/C++代码进行单元、集成测试的工具,它可以自动化地执行测试、评估测试结果并生成测试报告。Tessy的目标就是:通过自动化整个测试周期,在所有测试阶段完美支持针对C语言的单元测试,当然,Tessy也同样关注测试组织和测试管理。
Tessy软件源自戴姆勒-奔驰公司的软件技术实验室。从1997年,Tessy就在戴姆勒-奔驰公司得到广泛的使用,之后独立成为专业的软件测试工具公司Razorcat,由德国Hitex负责全球销售及技术支持服务。北汇信息作为Hitex/Razorcat公司的中国合作伙伴,将为中国汽车客户提供Tessy软件及优秀的软件测试服务。
Tessy的应用
在以V模型为例的开发模式中,Tessy主要处理右半部分验证和确认中单元/模块测试,集成/组件测试以及系统测试的内容。在V模型的开发模式中,单元测试是第一个测试活动。它阻止了每一类错误,比如算法错误,在V模式的右边向上蔓延,这样可以尽可能早得发现Bug,防止直到后面的测试过程或者直到最终用户那里才被发现,单元测试有经济效益,越早发现bug越好 。
另外,Tessy也可以满足各类标准(ISO26262、IEC 61508、 EN 50128/50129、 DO-178B、汽车SPiCE或FDA的软件验证通用原则)对测试的需求,比如ISO26262中各个测试等级中对模块测试的要求可以使用Tessy来满足,当然Tessy本身也通过了TUeV的认证,被证明是安全可靠的,可以在安全相关性的软件研发过程中被使用。
Tessy的特性
自动生成测试环境:
Tessy可以自动生成测试环境驱动,选择自动或者手动打桩以及自动生成测试用例模板,帮助客户提高测试用例设计效率。
多种测试用例确定方式:
除了从Excel中导入测试用例,手动地设计测试用例外,Tessy里集成了CTE软件,根据分类树的方法通过Tessy自动化地关联测试用例。
支持动态测试的各阶段:
Tessy可以支持从单元测试到系统测试的动态测试过程各个阶段,通过单元测试检查最小单位为函数的功能,通过集成测试来测试各个子功能组合起来的模块能否达到预期要求的父功能以及相互间的接口,通过系统测试实现与目标板集成的测试环境来测试系统功能;
另外Tessy可以自动发现被测对象的改变,分析被测对象的接口,重用测试用例和测试数据,从而为重复的回归测试节约大量的工作和时间,在接口不变的情况下Tessy可以完全自动化地执行不需要用户介入的回归测试;
全自动地测试执行及评估;
Tessy检查源文件并且通过分析程序代码来确定函数以及他们的接口,这些信息将被保存在特定的数据库中供随时检索,接口信息和测试数据的分离实现了结构和数据之间的明确划分,一方面,接口的测试使首先显示变化成为可能,另一方面,如果发生变化,通常也只有要测试的函数接口的几个元素要发生变化,在Tessy中接口发生变化时的处理相当简单;
测试报告生成:
管理测试数据并将测试结果文档,Tessy提供输入参数/执行测试和评估结果和报告文档,Tessy可以生成各种类型的测试报告,包括详细报告、概况报告以及覆盖度报告等。
显示测试覆盖度:
Tessy提供C1覆盖,即分支覆盖branch coverage或者判定覆盖decision coverage ;条件覆盖,即多条件覆盖MCC(Multiple Condition Coverage)和修正条件判定覆盖MC/DC(Modified Condition/Decision Coverage),Tessy是通过测试应用程序来获取测试覆盖信息的;
支持各种测试环境:
Tessy现在可以支持超过130种微控制器、交叉编译器和调试器的组合; 这确保了Tessy能够处理交叉编译器生成的非标准C(ANSI-C)微控制器特定的代码; 一旦Tessy和不同的调试器完成集成,就可以自动执行测试了。
支持ASAP2:
在Tessy中设计测试用例之前选择与ASAP2标准的集成功能,确定需要导入的ASAP2文件,使用ASAP2转换规则自动地将测试用例中设计的测试数据物理值转换为在目标板中执行测试对象的整数值,从而简化测试用例设计的理解和实现,并且可以在Tessy中显示其他ASAP2信息,例如单位,最大/最小值等。
Tessy用户列表及典型案例:
Tessy被广泛应用于汽车、国防、铁路、医疗和工业应用领域当中,众多著名的汽车整车厂、零部件供应商都在使用Tessy。
德国戴姆勒公司大量使用Tessy,其中应用最多的部门是EP/MEI,他们在使用Freescale MPC微控制器,主要为六缸和八缸汽油机开发控制软件,也包括迈巴赫使用的12缸发动机的控制软件,也都是用Tessy进行测试的。在一个典型的测试项目中包含90个C语言功能函数,所有的函数都使用Tessy测试。一个功能函数通常有平均20个接口元素(比如输入或输出变量)。为了全面地测试一个功能,总共需要大约500个测试步骤,划分成20到30个测试用例。
戴姆勒公司EP/MEI部门的Ralf Focken感叹说,“不使用Tessy的单元测试,是我们无法想象的。”
德国宝马公司正在使用Tessy测试由Matlab/Simulink模型自动生成的代码,以及集成的手写代码。这个项目是为宝马的混合动力汽车锂电池的智能电池管理系统,安全等级为ISO26262 ASIL C级。这个项目由40个C语言的功能函数组成。所有的功能函数,包括硬件接口函数,都是使用Tessy测试的。对于有些测试对象,需要多达20000个测试用例,Tessy都可以轻松处理这样大量的测试数据。
宝马公司的Andreas Schmude说“Tessy对于测试我们自动生成的代码,起了至关重要的作用。”