背景
车型/ECU开发周期缩短、功能复杂度的提高对测试提出更高的要求,尤其为适应下一代架构发展而出现的ECU新形态“域控制器“,针对其测试,无论从测试经验、知识能力,还是测试实现方法都提出了更大的挑战:

挑战一:功能/服务集成度更高
从单一功能点的维度开展测试,其测试深度无法保证,必须考虑各种功能应用场景的有效耦合,这就需要具备系统整车级和用户角度的功能测试实践经验;同时介于域控制器的潜在多核多系统共存的特点,还需从任务分布实现的角度考虑和设计对应的测试场景。

挑战二:功能安全等级要求更高
单向/正向的基于需求的测试用例开发,其覆盖度有限,无法满足功能安全对测试的要求(具体参见ISO26262中定义),需要更多的采用测试设计理论方法予以支撑测试实现。

如何应对?
对于一,更需要经验积累和新知识能力储备
对于二,可通过选择合适的工具,这是本文的重点
补充一点,面向服务和传统基于信号的功能实现,对于搭建测试仿真环境也提出了新的要求,后续针对此做专题讨论。

vTESTstudio简介
测试自动化广为接受,自动化测试的HiL硬件是载体,自动化测试设计软件为其落地的关键,要高效好用(图形化)、便于积累复用(模块化和抽象分离),具有高覆盖度(支持不同类型的测试设计方法)。市面上,可以实现自动化测试设计的软件不少,各有特点,适合的才是最好的。
vTESTstudio是VECTOR公司推出的一款图形化测试设计开发环境,核心的特点如下:

支持多种测试设计语言编写测试用例
包括Test Table Editor 、Test Sequence Diagram Editor、State Diagram Editor、CAPL Editor&C# Editor,应用了多种测试理论设计方法以提高测试的覆盖度。

变体和参数化概念
平台化设计理念的引入,用例主体和参数抽象分离,用例更容易通过更新参数集适配不同的变体,达到用例的积累复用。

需求追踪
支持与REQM/TDM的结合应用,vTESTstudio可将REQM/TDM导出标准xml格式的需求矩阵与测试用例建立映射关系,并将映射关系体现在测试报告中,如图1所示。
100521fp0xrly2b0wlv7o2.png
图1 REQM/TDM-system、vTESTstudio与CANoe结合应用
图片来源:vTESTstudio4.0 help文档vTESTstudio.chm
vTESTstudio对于测试理论的应用
vTESTstudio作为一款设计开发工具,其融合了经典的测试设计技术方法以及新颖的测试设计技术方法,并且引入变体的概念,对于平台化设计的应用具备重要作用。以下简单介绍vTESTstudio应用的其中几种测试设计方法以及变体的应用(可从vTESTstudio demo获取)。

流程分析法的应用-路径覆盖设计

100521owqgwmrqoneogt7g.png
图2 路径覆盖法设计用例

正交试验设计法的应用-分类树设计

100522pf4lp1ntj43dgd4e.png
图3 分类树

状态迁移法的应用-状态机设计

100522zee6jsa8ezrbsabk.png
图4 状态机设计

平台的概念-变体的应用
vTESTstudio中可以根据变体类型配置不同的测试用例,对于平台化设计及后续测试范围选择的应用具备重要作用,变体的类型具体如不同地域/法规、不同配置/车型/平台、不同覆盖度等,在CANoe中选择目标变体并运行,即可测试相应变体适用的用例。

100522h5636dt5od3du6dl.png
图5 变体属性添加

100522e2z6myn2zm2syui2.png
图6 变体属性的分配

100523f3ivldx4ldc9ppkv.png
图7 CANoe中根据变体选择后适用的用例

vTESTstudio用例设计开发及案例验证
前面已经提到几种vTESTstudio应用测试理论设计用例的方法,现介绍vTESTstudio在验证测试阶段的具体应用示例,摘选自北汇为某客户开发的第一代车身域控制器(DCU)部分功能点的自动化测试序列及验证。

Case 1:针对雨刮间歇模式功能点的测试设计验证
Step1:分类树图创建

100523id8y56lm1i2iii8m.png
图8 前雨刮间歇功能的因子因素分类树图

Step2:图表编辑器(Test Table Editor)中设计带参数接口的标准测试用例库

100523ueoztffgohyromzo.png
图9 图表编辑器中编写标准用例库

Step3:图表编辑器中调用设计好的标准测试用例,并将通过分类树已创建的参数插入到用例的参数接口中,如下图

100524j3bq38sv7d8ffu2n.png
图10 插入参数后的用例

Step4:CANoe中加载vTESTstudio中编译后的文件并执行测试

100524i83424iv8eio4yeb.png
图11 CANoe中加载vTESTstudio中编译后的雨刮间隙自动化测试序列

Step5:测试报告

100525d4s1uku5uvggsuwv.png
图12 雨刮间歇功能报告概览

Case 2:针对制动灯功能的测试验证
Step1:图形化编辑器(Test Sequence Diagram Editor)中设计测试用例并编译

100525rwr9w8co844ye5o4.png
图13 vTESTstudio图形化编辑器设计测试用例

Step2:CANoe中加载vTESTstudio中编译后的文件并执行测试

100525t839t4aa30s7cao4.png
图14 CANoe中加载vTESTstudio中编译后的制动灯测试序列

Step3:测试报告

100526sdv8dd6jvv81r9v8.png
图15 制动灯功能报告概览

Case 3:针对防盗系统不同状态跳转功能的测试验证
Step1:状态机图形编辑器(State Diagram Editor)中设计测试用例

100526b2drd4dn42mnmeme.png
图16 状态机用例设计

Step2:CANoe中加载并执行

100526ghuvgskcpvc12vpz.png
图17 CANoe中加载vTESTstudio编译后的防盗状态测试序列

Step3:测试报告

100526bg9hzz56i5690pc3.png
图18 Disarmed&Remind状态切换报告概览

自动化测试应如何高效应用
所谓“尽信书不如无书”,盲目追求自动化测试则会背离测试的本质,自动化测试仅仅是手段,利用手段而不是依赖手段。自动化测试实现的目的是高效快速的完成测试的验证。时间、成本和效益是企业发展永恒的主题,那到底应该如何高效应用自动化测试来提高投资回报率?具体哪种情况适合自动化测试呢?笔者结合众多测试开发人员的经验及个人实践综合认为,适合自动化测试项目的特点:
1. 重复性强
2. 测试频率高
3. 平台化型产品(需求变动不频繁)
4. 增量式开发、持续性集成开发
5. 回归测试
6. 耦合复杂,具有时间特性要求的功能
关于如何高效应用自动化测试,各位看官可以踊跃发言哦。

总结
vTESTstudio具备需求覆盖度高、设计简单易懂、易于维护以及复用性高等优点,得益于图形化及软硬件抽象分离特点,对开发人员的基础编程能力要求不高。北汇信息可提供基于VT System I/O板卡、vTESTstudio与CANoe组成了完整的HiL测试平台,已为多家OEM/Tier1定制部件级功能测试系统(包括车身域控制器,及传统分布式控制器功能测试开发),提供系统级及实车级测试验证服务,期待交流分享和合作的机会。
工欲善其事,必先利其器。工具是效率的保障,选择适合的工具是很重要的一步,“进阶之路“需要人的经验积累、迭代,不断复盘和总结。与君共勉!

参考文献:
【1】vTESTstudio_Factsheet_EN.pdf
【2】vTESTstudio_ConceptManual_EN.pdf
【3】Vector_Model-based E/E System Development with PREEvision.pdf
【4】https://www.vector.com/int/en/products/products-a-z/software/vteststudio/#c22759
附:vTESTstudio支持的主流REQM/TDM一览:
【1】Vector PREEvision TDM,如图19所示为vector提供的测试数据管理系统vTESTcenter概览。
【2】IBM Rational DOORS (from version 8.1)
【3】IBM Rational DOORS NG, IBM Rational Quality Manager (from version 6.0.0)
【4】PTC Integrity (from version 10.2)
【5】Siemens Polarion ALM (from version 2016)

100527rz7hhifdlglfd6mh.png
图19 vTESTcenter Overview
图片来源:Vector_Model-based E/E System Development with PREEvision.pdf