谈到HIL测试,你首先会想到什么呢?想到一大堆的测试用例,测试脚本,还是数不清的测试报告,又或是常年与一台冰箱大小设备相伴工作的场景。如果谈到HIL测试方法,你又会想到什么呢?是各种软件测试方法,是团队的测试流程,还是硬件在环仿真技术本身?......“HIL测试方法”一词太过宏大,为叙述方便,本文特指“为了验证ECU软硬件的设计和实现,基于硬件在环设备,如何设计测试流程、提取测试需求、设计测试用例、编写测试脚本的过程和方法论”。
测试流程
首先我们来看HIL测试流程。
第一步是收集ECU的测试依据,这里的测试依据包括ECU的软硬件设计说明书,ECU用户手册,行业和企业相关标准等;
第二步测试分析,即分析测试依据,找出HIL测试点。测试点顾名思义,就是测试用例要验证的功能点,又称为测试需求。测试点的提取对测试质量非常重要,因为它直接影响到一个项目是否“漏测”,因此,需要组织专家对测试点进行review。
第三步测试设计,即根据提取的测试点,设计测试用例和测试数据;可以使用各种软件测试技术(边界值,等价类,状态图等)来设计测试用例,并根据具体ECU设计情况选择测试数据,以求覆盖所有的测试点。测试用例和测试数据也需要进行review。值得注意的是,如果测试用例打算编写成自动测试脚本,并自动执行,则需要考虑测试脚本实现的可能性和方便性,步骤不应过多过细,最好留给测试自动化工程师一些发挥空间。
最后一步是测试脚本的编写和执行。
整个测试流程中每一步骤都应该保持向前追踪,从而确保测试质量。其中,测试分析阶段最为重要,也是最能体现测试工程师设计能力的地方。
下文主要以2015年12月28日发布的《GBT 27930-2015 电动汽车非车载传导式充电机与电池管理系统之间的通信协议》(后文简称快充协议)作为测试依据,讲解测试分析的过程。
测试范围:
对电池管理系统BMS的快充特性进行功能测试,通信测试和诊断测试。功能测试主要检查BMS在正常状态下充电时序逻辑、非正常状态下停止充电的时序逻辑是否正确;通信测试主要是检查J1939协议是否正确实现,它是功能测试和诊断测试的基础;诊断测试主要检查BMS的对发生的硬件故障是否能够正确记录,存储和清除DTC码。
测试对象分析:
功能测试分析:根据快充国标“附录A.6” 正常充电时序流程图,应测试所有BMS报文开始发送和停止的条件是否正确实现;对于有多个条件触发的报文,应测试所有的条件;同时,应检查BMS对车辆相关继电器的控制是否正确,相关监控点电压是否正确。根据“国标附录A.7,A.8,A9,A10”非正常状态下停止充电的时序流程图,一方面要测试BMS能否正确响应充电机的停止充电请求,另一方面也要测试BMS能否正确主动提出“停止充电请求”,并正确执行相关继电器的控制和电流的监控。根据“国标附录A11,A12”通信超时流程图,一方面应测试BMS对充电机接收报文超时的响应是否正确,另一方面也要测试BMS能否正确发送超时故障报文,并执行相关继电器的控制和电流的监控。
通信测试应检查所有J1939报文的收发是否正确,尤其对于数据字节大于8byte的报文:BRM,BCP,BMV,BMT,BSP,应检查BMS的传输协议功能(消息的拆装和重组)是否正确实现。诊断测试应检查所有的故障诊断报文(包括DTC码)及其功能是否正确实现。
测试点与测试方法:
下面根据功能测试分析的内容,提取测试点,如下表:
根据上表中的测试点和测试方法(并不全面和充分),结合实际BMS功能的规格书,通过选择测试数据,制定测试步骤和期望结果,可完成测试用例集的设计。
对于通信测试和诊断测试,可以采用类似的分析方法,提取测试点和备注测试方法。本文限于篇幅不再详述。
主要参考文献:
《软件测试之魂 核心测试设计精解(第2版)》 肖利琼 著
《GBT 18487.1-2015 电动汽车传导充电系统 第1部分 通用要求》
《GBT 27930-2015 电动汽车非车载传导式充电机与电池管理系统之间的通信协议》
本文转载微信公众号:融创芯城(一站式电子元器件,PCB,PCBA购买与服务,项目众包、方案共享平台)