点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
引言
之前我们讲解了很多服务、配置及否定响应(NRC)等等(见<<>>),本文我们将简述一下UDS中常见的测试用例。测试用例一般分为肯定响应和否定响应测试,否定响应的测试我们需要根据服务种类和OEM要求需要的每个服务需要支持的否定响应及否定响应的优先级来设计测试用例(对于不支持的服务进行测试时,ECU需要回复NRC11)。本文主要描述APP中常见的服务的测试用例。
1 0x10(诊断会话控制)
条目 |
测试case |
期望值 |
1 |
肯定响应测试:发送10 01/02/03 |
ECU需要回复对应的肯定响应:50 01/02/03 |
2 |
请求格式错误:请求长度错误或者格式不正确 |
ECU需要回复NRC13 |
3 |
请求的子功能不支持(如只支持01/02/03三个子服务时,发送其他子服务) |
ECU需要回复NRC12 |
4 |
当前会话不支持切换请求的会话模式(如在默认会话请求进入编程会话) |
ECU需要回复NRC7E |
5 |
条件不满足(如项目要求车速<2km/h才能进入编程会话,模拟车速大于2km/h发送请求进入编程会话) |
ECU需要回复NRC22 |
6 |
NRC优先级测试 |
|
7 |
正确的会话切换测试 |
ECU回复肯定响应0x50 |
8 |
会话保持时间测试 |
如扩展会话下,S3 timer超时时,会自动切换到默认会话下 |
9 |
电源重新上下电/休眠唤醒/复位后所处会话状态 |
一般要求处于默认会话 |
2 0x11(ECU复位)
条目 |
测试case |
期望值 |
1 |
肯定响应测试 |
ECU需要回复对应的肯定响应:51 xx |
2 |
请求格式错误:请求长度错误或者格式不正确 |
ECU需要回复NRC13 |
3 |
请求的子功能不支持(如只支持01/02/03三个子服务时,发送其他子服务) |
ECU需要回复NRC12 |
4 |
NRC优先级测试 |
|
5 |
ECU的复位时间要求 |
ECU复位的时间要求,第一帧发出的时间或者复位后诊断使能的时间 |
6 |
服务功能测试 |
ECU是否发生复位(ECU复位服务的肯定应答报文应在复位操作执行之前发送。在复位之后,ECU应首先进入默认会话) |
3 0x14(清除故障信息)
条目 |
测试case |
期望值 |
1 |
肯定响应测试 |
ECU需要回复对应的肯定响应:54 xx |
2 |
请求格式错误:请求长度错误或者格式不正确 |
ECU需要回复NRC13 |
3 |
请求清除的DTC不存在 |
ECU需要回复NRC31 |
4 |
NRC优先级测试 |
|
5 |
当前会话模式不支持0x14服务(如编程会话不支持该服务,可以将会话模式切换到编程会话,再请求该服务) |
ECU需要回复NRC7F |
6 |
服务功能测试 |
清除DTC后再通过0x19服务读取不到已清除的DTC |
4 0x19(读取故障码信息)
条目 |
测试case |
期望值 |
1 |
肯定响应测试 |
ECU需要回复对应的肯定响应:59 xx,需要判断相关数据如包括扩展数据或者数据快照等(见<<>>)等是否正确) |
2 |
请求格式错误:请求长度错误或者格式不正确 |
ECU需要回复NRC13 |
3 |
请求的子功能不支持 |
ECU需要回复NRC12 |
4 |
NRC优先级测试 |
|
5 |
请求的参数错误 |
ECU需要回复NRC31 |
6 |
当前会话模式不支持0x19服务(如编程会话不支持该服务,可以将会话模式切换到编程会话,再请求该服务) |
ECU需要回复NRC7F |
7 |
满足DTC触发的前置条件的情况下触发故障发生DTC相关状态是否会置位 |
相关状态位会置位 |
8 |
不满足DTC触发的前置条件的情况下触发故障发生DTC相关状态是否会置位 |
相关状态位不会置位 |
9 |
DTC的状态位设置是否正确(比如某个事件的TestFailed需要5次操作循环才会变为ConfirmedDTC,需要验证次数和状态位的变化是否符合要求) |
/ |
10 |
DTC的故障码清除是否符合预期(如10次老化周期可以清除DTC,需要测试10次后是否可以清除DTC故障码) |
/ |
5 0x22(根据标识符读取数据)
条目 |
测试case |
期望值 |
1 |
肯定响应测试 |
ECU需要回复对应的肯定响应: 62 xx(需要判断读取到的数据的正确性) |
2 |
请求格式错误:请求长度错误或者格式不正确 |
ECU需要回复NRC13 |
3 |
NRC优先级测试 |
|
4 |
请求的参数错误 |
ECU需要回复NRC31 |
5 |
当前会话模式不支持0x22服务(如编程会话不支持该服务,可以将会话模式切换到编程会话,再请求该服务) |
ECU需要回复NRC7F |
6 |
请求的DID不存在 |
ECU需要回复NRC31 |
7 |
条件不满足(如有的项目需要解锁才能访问,此时可测试不解锁去读取) |
ECU需要回复NRC22 |
6 0x27(安全访问)
条目 |
测试case |
期望值 |
1 |
肯定响应测试 |
ECU需要回复对应的肯定响应: 67 xx |
2 |
请求格式错误:请求长度错误或者格式不正确 |
ECU需要回复NRC13 |
3 |
NRC优先级测试 |
|
4 |
请求不支持的子功能,比如项目只支持27 01/02/11/12,ECU收到请求27 03/04 |
ECU需要回复NRC12 |
5 |
当前会话模式不支持0x27服务(如默认会话不支持该服务,可以将会话模式切换到默认会话,再请求该服务) |
ECU需要回复NRC7F |
6 |
请求的顺序错误,如没有请求种子(0x27 01),直接发送密钥(0x27 02) |
ECU需要回复NRC24 |
7 |
发送的密钥不正确(0x27 02后跟的密钥和服务端计算的不一致) |
ECU需要回复NRC35 |
9 |
如下图安全访问策略所示,连续3次发送错误的密钥(如0x27 02)的第三次的服务端回复 |
ECU需要回复NRC36 |
10 |
如下图安全访问策略所示,连续3次发送错误的密钥(如0x27 02),当在Delay Time内再次请求种子时(Delay Time由OEM指定,一般为10S) |
ECU需要回复NRC37 |
11 |
0x27服务功能测试,比如27 01/02之后,是否能正确的执行0x2E等操作 |
|
12 |
会话后/复位/超时/掉电后,安全访问的维持情况(ECU需要退出解锁状态) |
安全访问策略
7 0x28(通信控制)
条目 |
测试case |
期望值 |
1 |
肯定响应测试+服务功能测试 |
ECU需要回复对应的肯定响应: 68 xx,并判断通信控制是否成功(如暂停非UDS通信的收发时,是否有非UDS的报文发出) |
2 |
请求格式错误:请求长度错误或者格式不正确 |
ECU需要回复NRC13 |
3 |
NRC优先级测试 |
|
4 |
请求不支持的子功能 |
ECU需要回复NRC12 |
5 |
当前会话模式不支持0x28服务 |
ECU需要回复NRC7F |
6 |
默认会话切到非默认会话时,通信控制是否保持 |
保持原默认会话时的状态 |
7 |
非默认会话切换到默认会话时,通信控制是否保持 |
不保持 |
8 0x2E(通过DID写数据)
条目 |
测试case |
期望值 |
1 |
肯定响应测试+服务功能测试 |
ECU需要回复对应的肯定响应: 6E xx,并需要通过0x22读处DID验证写入的数据的正确性 |
2 |
请求格式错误:请求长度错误或者格式不正确 |
ECU需要回复NRC13 |
3 |
NRC优先级测试 |
|
4 |
请求不支持的子功能 |
ECU需要回复NRC12 |
5 |
当前会话模式不支持0x2E服务 |
ECU需要回复NRC7F |
6 |
请求的DID需要在安全解锁条件下才能写入,但是ECU没有安全解锁 |
ECU需要回复NRC33 |
7 |
条件不满足 |
ECU需要回复NRC22 |
9 0x85(控制诊断故障码设置)
条目 |
测试case |
期望值 |
1 |
肯定响应测试 |
ECU需要回复对应的肯定响应。 |
2 |
服务功能测试(如先发送0x85 0x02关闭DTC的服务并得到肯定响应后,再停止发送一些CAN报文,用0x19去读取CAN通信相关的DTC) |
读取不到相应的DTC |
2 |
请求格式错误:请求长度错误或者格式不正确 |
ECU需要回复NRC13 |
3 |
NRC优先级测试 |
|
4 |
请求不支持的子功能 |
ECU需要回复NRC12 |
5 |
当前会话模式不支持0x85服务 |
ECU需要回复NRC7F |
6 |
默认会话切到非默认会话时,DTC控制状态是否保持 |
保持原默认会话时的状态 |
7 |
非默认会话切换到默认会话时,DTC控制状态是否保持 |
不保持 |
10 0x31(例程控制)
条目 |
测试case |
期望值 |
1 |
肯定响应测试 |
ECU需要回复对应的肯定响应。 |
2 |
服务功能测试(如通过0x31服务启动某功能时,该功能是否真的启动) |
/ |
2 |
请求格式错误:请求长度错误或者格式不正确 |
ECU需要回复NRC13 |
3 |
NRC优先级测试 |
|
4 |
请求不支持的子功能 |
ECU需要回复NRC12 |
5 |
当前会话模式不支持0x31服务 |
ECU需要回复NRC7F |
6 |
未解锁的情况下请求需要解锁的Routine DID |
ECU需要回复NRC33 |
7 |
请求的Routine DID不存在 |
ECU需要回复NRC31 |
end
精品活动推荐
专业社群
部分入群专家来自:
新势力车企:
特斯拉、合众新能源-哪吒、理想、极氪、小米、宾理汽车、极越、零跑汽车、阿维塔汽车、智己汽车、小鹏、岚图汽车、蔚来汽车、吉祥汽车、赛力斯......
外资传统主流车企代表:
大众中国、大众酷翼、奥迪汽车、宝马、福特、戴姆勒-奔驰、通用、保时捷、沃尔沃、现代汽车、日产汽车、捷豹路虎、斯堪尼亚......
内资传统主流车企:
吉利汽车、上汽乘用车、长城汽车、上汽大众、长安汽车、北京汽车、东风汽车、广汽、比亚迪、一汽集团、一汽解放、东风商用、上汽商用......
全球领先一级供应商:
博世、大陆集团、联合汽车电子、安波福、采埃孚、科世达、舍弗勒、霍尼韦尔、大疆、日立、哈曼、华为、百度、联想、联发科、普瑞均胜、德赛西威、蜂巢转向、均联智行、武汉光庭、星纪魅族、中车集团、赢彻科技、潍柴集团、地平线、紫光同芯、字节跳动、......
二级供应商(500+以上):
Upstream、ETAS、Synopsys、NXP、TUV、上海软件中心、Deloitte、奇安信、为辰信安、云驰未来、信大捷安、信长城、泽鹿安全、纽创信安、复旦微电子、天融信、奇虎360、中汽中心、中国汽研、上海汽检、软安科技、浙江大学......
人员占比
公司类型占比
原文始发于微信公众号(谈思实验室):UDS测试用例总结
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论