Tessy是一个专门针对嵌入式软件的C/C++代码进行单元、集成测试的工具,它可以自动化地执行测试、评估测试结果并生成测试报告。Tessy的目标就是:通过自动化整个测试周期,支持针对C语言的单元测试/集成测试,同时,Tessy也同样关注测试组织和测试管理。
Tessy软件源自戴姆勒-奔驰公司的软件技术实验室,在戴姆勒-奔驰公司得到广泛的使用,1997年之后独立成为专业的软件测试工具公司Razorcat,由德国Hitex负责销售及技术支持服务。北京经纬恒润科技有限公司作为Hitex/Razorcat公司的中国合作伙伴,将为中国汽车客户提供Tessy软件及软件测试服务。
产品介绍
在以V模型为例的开发模式中,Tessy主要应用在单元/模块测试,集成/组件测试。在V模型的开发模式中,单元测试是一开始的动态测试活动。通过函数级测试,有效检查出每一类错误,比如算法错误、边界控制错误、数据溢出等。通过单元测试,可以尽可能早得发现Bug,防止直到后面的测试过程或者直到终端用户那里才被发现。在整个项目开发测试周期中,越早发现Bug越好,事实证明,开展详尽规范的单元测试能够有效减少系统测试和回归测试时间,降低开发成本。
另外,Tessy也可以满足各类标准(ISO26262、IEC 61508、 EN 50128/50129、 DO-178B、汽车SPiCE或FDA的软件验证通用原则)对测试的需求,比如ISO26262中各个测试等级中对模块测试的要求可以使用Tessy来满足,当然Tessy本身也通过了Tuev的认证,可以在安全相关性的软件研发过程中被使用。
主要功能
? 自动生成测试环境
Tessy可以自动生成测试环境驱动,选择自动或者手动打桩以及自动生成测试用例模板,帮助客户提高测试用例设计效率。
? 多种测试用例确定方式
除了可以在简洁的界面中手动输入测试用例之外,还支持从Excel中导入测试数据,也可以通过脚本编辑器编写测试用例。另外,Tessy里集成了CTE软件,根据分类树的方法,将每个接口的等价类进行划分,半自动化的生成测试用例,降低用例冗余度,提高测试效率。
用例设计
用例脚本编辑器
CTE分类树设计
? 支持动态测试的各阶段
Tessy可以支持从单元测试到系统测试的动态测试过程各个阶段,通过单元测试检查每个函数的功能完整性,通过集成测试对各个子模块进行功能验证以及模块间接口测试,可以通过与目标板集成进行系统功能验证。
另外Tessy可以自动识别被测对象的接口变更,提示我们需要更新测试用例;版本迭代时,可重用测试用例和测试数据,节约大量回归测试需要的工作和时间,在接口不变的情况下Tessy可以自动化地执行不需要用户介入的回归测试。
? 全自动地测试执行及评估
Tessy检查源文件并且通过分析程序代码来确定函数以及他们的接口,这些信息将被保存在特定的数据库中供随时检索,接口信息和测试数据的分离实现了结构和数据之间的明确划分,一方面,接口的测试使首先显示变化成为可能,另一方面,如果发生变化,通常也只有要测试的函数接口的几个元素要发生变化,在Tessy中接口发生变化时的处理相当简单;
? 测试报告生成
管理测试数据并将测试结果文档,Tessy提供输入参数/执行测试和评估结果和报告文档,Tessy可以生成各种类型的测试报告,包括详细报告、概况报告以及覆盖度报告等。
? 覆盖率统计
Tessy提供C0覆盖,即语句覆盖statement coverage;C1覆盖,即分支覆盖branch coverage或者判定覆盖decision coverage ;条件覆盖,即多条件覆盖MCC( Multiple Condition Coverage)和修正条件判定覆盖MC/DC(Modified Condition/Decision Coverage),Tessy是通过测试应用程序来获取测试覆盖信息的。
对于集成测试,Tessy还提供了调用覆盖Call pair coverage和函数覆盖Function Coverage。
? 测试工作量评估与跟踪
基于函数中语句、调用的数量和嵌套深度,Tessy可以评估测试的工作量,并以时间形式显示。并且可以追踪实际的测试完成时间,并在测试项目视图中方便地进行管理。
? 故障注入测试
故障注入可以实现传统方法无法实现的测试用例输入,例如跳出无限循环,先写后读功能以及防御性编程测试。可以在选定的分支位置注入专用的测试代码,以便可以操纵决策结果。这确保了正确的操作以及正常的测试用例不会由故障注入引起副作用。
? 支持各种开发环境
Tessy现在可以支持超过130种微控制器、编译器和调试器的组合;这确保了Tessy能够处理交叉编译器生成的非标准C(ANSI-C)微控制器特定的代码;一旦Tessy和不同的开发环境完成集成,就可以在实际芯片中运行测试用例了。
? 支持ASAP2
在Tessy中设计测试用例之前选择与ASAP2标准的集成功能,确定需要导入的ASAP2文件,使用ASAP2转换规则自动地将测试用例中设计的测试数据物理值转换为在目标板中执行测试对象的整数值,从而简化测试用例设计的理解和实现,并且可以在Tessy中显示其他ASAP2信息,例如单位。
? 插入需求
所有的测试活动都是基于功能规格和需求变更的。支持插入需求,随着需求的变化自动变更需求版本,实现需求可溯性。可通过插入需求宏观把握测试工作的进度。