一、物理层测试
1. 信号完整性测试:
测试 CAN 总线在不同长度电缆下的信号衰减情况。
测试 CAN 总线在高噪声环境下的抗干扰能力。
验证总线电平是否符合 ISO 11898-2 或 ISO 11898-3 标准。
2. 通信速率测试:
测试 CAN 总线在不同通信速率(如 125 kbps、500 kbps、1 Mbps)下的稳定性。
验证 CAN FD 在高速模式(如 5 Mbps)下的数据传输是否正常。
3. 容错性测试:
测试低速容错 CAN 在总线短路、断路等异常情况下的恢复能力。
验证总线在节点故障时是否能够正常通信(Can Bus Off)。
4. 硬件兼容性测试:
测试不同厂商的 CAN 控制器和收发器的兼容性。
验证不同连接器、电缆对通信质量的影响。
二、数据链路层测试
1. 帧格式测试:
测试标准帧(11 位 ID)和扩展帧(29 位 ID)的正确解析和发送。
验证 CAN FD 帧格式(FBFF 和 FEDF)的支持情况。
2. 错误检测与处理测试:
测试 CRC 校验、ACK 应答、错误帧的生成和处理。
模拟位错误、填充错误、格式错误等,验证错误检测机制是否生效。
3. 仲裁机制测试:
测试多个节点同时发送数据时,优先级高的帧是否能够成功仲裁。
验证在总线负载较高时,低优先级帧是否会被延迟或丢失。
4. 位填充测试:
测试位填充规则是否正确执行,避免连续 5 个相同位。
验证接收端是否正确去除填充位。
三、网络层测试
1. 标识符过滤测试:
测试节点是否正确过滤和处理指定的 CAN ID。
验证广播通信中,节点是否能够正确接收和处理所有消息。
2. 多节点通信测试:
测试多个节点同时通信时,总线负载是否在合理范围内。
验证节点在总线负载较高时的响应时间是否符合预期。
四、传输层测试
1. 数据分包与重组测试:
测试 ISO 15765-2 协议下的数据分包和重组功能。
验证长数据帧(超过 8 字节)在传输过程中是否能够正确分片和重组。
2. 流控制测试:
测试流控制帧(Flow Control Frame)的正确发送和处理。
验证在数据传输过程中,流控制机制是否能够有效避免数据丢失。
3. 时间参数测试:
测试传输层的时间参数(如 N_As、N_Bs、N_Cr)是否符合标准。
验证在超时情况下,传输层是否能够正确处理错误。
五、应用层测试
1. 诊断协议测试:
测试 UDS(ISO 14229-1)协议的正确实现,包括请求和应答格式。
验证诊断服务(如读取故障码、清除故障码)是否能够正常执行。
2. 自定义应用协议测试:
测试自定义协议的消息格式和通信规则是否符合需求。
验证应用层协议在不同总线负载下的稳定性。
3. 功能安全测试:
测试 CAN 总线在安全相关应用中的可靠性(如 ISO 26262 标准)。
验证故障注入测试(Fault Injection Testing)下的系统行为。
六、性能测试
1. 总线负载测试:
测试 CAN 总线在不同负载(如 30%、50%、80%)下的通信性能。
验证高负载情况下是否会出现丢帧或通信延迟。
2. 实时性测试:
测试关键消息的传输延迟是否符合实时性要求。
验证高优先级消息是否能够及时传输。
3. 吞吐量测试:
测试 CAN FD 在大数据量传输下的吞吐量。
验证数据段长度为 64 字节时的传输效率。
七、异常场景测试
1. 节点故障测试:
模拟节点掉线或故障,验证总线是否能够正常通信。
测试故障节点的恢复能力。
2. 总线冲突测试:
模拟多个节点同时发送数据,验证总线冲突处理机制。
测试在冲突情况下,高优先级消息是否能够成功传输。
3. 电源波动测试:
测试 CAN 总线在电源波动或电压不稳情况下的通信稳定性。
验证节点在低电压情况下的工作状态。
4. 温度环境测试:
测试 CAN 总线在高温、低温环境下的通信性能。
验证节点在极端温度下的工作稳定性。
八、兼容性测试
1. 不同 CAN 控制器测试:
测试不同厂商的 CAN 控制器(如 NXP、Infineon、TI)的兼容性。
验证不同控制器对 CAN FD 的支持情况。
2. 跨平台测试:
测试 CAN 总线在不同操作系统(如 Linux、Windows、RTOS)下的通信性能。
验证不同软件栈(如 SocketCAN、CANalyzer)的兼容性。
九、自动化测试
1. 自动化测试脚本开发:
开发自动化测试脚本,模拟 CAN 总线通信场景。
使用工具(如 CANoe、CANalyzer)进行自动化测试。
2. 持续集成测试:
将 CAN 总线测试集成到 CI/CD 流程中,确保每次代码更新后的通信稳定性。
使用 Jenkins 或 GitLab CI 实现自动化测试流水线。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取