针对新款车型,OEM会提出新车型的诊断需求,形成诊断需求规范。车内控制器由不同供应商提供。供应商根据需求规范来完成其功能实现。功能实现是否正确需要进行诊断测试验证。
测试目的:校验控制器关于诊断功能是否是按照需求规范定义的方式实现。
为了保证从需求提出-功能实现-后期测试整个流程中数据的正确性和一致性,诊断数据描述内容通过诊断数据库(CDD& PDX)为载体来贯穿整个全流程。
测试实现方式有:
手动测试: 基于需求规范,提炼出测试规范,再基于测试规范,编写测试用例。基于测试用例一步一步手动测试并记录测试结果
半自动化测试:基于测试规范编写测试脚本,将编写好的测试工程加载到执行软件中自动化运行。所谓半自动化就是手动编写测试脚本,自动化运行测试脚本
全自动测试:将诊断描述内容,如数据库,加载到对应的测试用例生成工具中(如Vector公司CANoe.DiVa),自动化生成测试用例,并将生成的测试工程加载到执行软件自动化运行测试用例
本文分析手工测试相关操作步骤。
一、无诊断数据库测试验证
应用场景:被测项目中,OEM未释放对应的诊断数据库CDD或者ODX文件(ODX打包格式是PDX),测试工程师所在公司没有编辑诊断数据库的工具(CANdelaStudio)。这时候需要对ECU进行手动诊断测试,步骤如下:
1、在CANoe中新建BasicDiagnostic工程:PC端打开CANoe工具,新建CANoe工程如下图:
2、在诊断窗口添加BasicDiagnostic Description(UDS)选项,使用CANoe工具内嵌的UDS入口,具体操作如下图:
3、在添加好BasicDiagnostic Description(UDS)选项后,会有对应的交互界面。在此处设置请求ID和响应ID、TP相关参数、加载解锁所需dll文件以及其他时间参数。
4、新建需要的测试内容:在CANoe中,选择Basic Diagnostic,并创建自己需要的服务
以Service10为例,配置子服务的Req和Res
5、将创建好的服务同步到诊断控制台(Diagnostic Console),使用接口卡连接ECU,手动发送诊断请求测试验证即可。
二、使用数据库进行测试验证
实际项目时,车厂或者Tier1会输入CDD&PDX文件,集成所有用到的诊断命令。在有诊断数据库CDD&PDX文件情况下,测试操作步骤如下:
1、在CANoe中加载数据库
2、导入配置如下,不需要修改:
3、cdd导入后, Diagnostic console中已经有了诊断命令,手动发送诊断帧的方式测试验证即可。