车载测试系列:基于CANoe的UDS诊断测试

发表于:2024-4-07 09:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:51CTO博客

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

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号