4. HIL测试用例设计方法
在HIL(硬件在环)环境中,被测对象是真实的ECU或域控制器,而车辆动力学、传感器、执行器和总线通信由实时仿真系统模拟。这一特点决定了经典的黑盒测试用例设计方法不能直接照搬,而需要针对实时性、信号连续性和闭环耦合进行适配。本节围绕等价类划分、边界值分析、状态迁移测试和场景法四种方法,说明它们在HIL中的具体落地方式,并给出测试用例管理工具的选型与组织思路。
一、等价类划分:从“输入域”到“信号区间与工况分区”
等价类划分的核心是找出输入域中具有相同处理逻辑的子集,每个子集取一个代表值即可。在HIL中,输入不再是单一变量,而是由多个物理信号、总线报文和工况条件共同构成的组合空间。因此,等价类划分需要从三个维度展开:
- 物理信号区间:例如车速信号0~300 km/h,可按无效区(<0)、正常区(0~300)、超限区(>300)划分。
- 总线报文状态:如CAN报文正常、超时、校验错误、丢失四种等价类。
- 工况条件:如挡位P/R/N/D、驾驶模式经济/运动、环境温度低温/常温/高温。
实际操作中,建议先建立“信号—工况”二维等价类表。以自适应巡航控制(ACC)为例,将车速划分为低速(0~30 km/h)、中速(30~80 km/h)、高速(80~150 km/h)三个等价类,将跟车距离设定划分为近、中、远三个等价类,组合后得到9个等价类。每个等价类只需选取一个典型代表点进行HIL激励,即可覆盖该类的控制逻辑。需要注意的是,HIL中信号是连续变化的,等价类边界处的过渡行为往往比类内行为更值得关注,因此等价类划分通常与边界值分析配合使用。
二、边界值分析:在HIL中关注“临界跳变”与“实时约束”
边界值分析针对等价类的边界及其邻近值设计用例。在HIL中,边界不仅包括数值边界,还包括时间边界和状态跳变边界。具体适配方式如下:
- 数值边界:如制动踏板开度0%、5%、95%、100%,重点验证ECU在临界点的响应是否正确。
- 时间边界:如报文超时阈值200 ms,测试用例应覆盖199 ms、200 ms、201 ms三个点,观察ECU是否在阈值附近正确触发降级策略。
- 状态跳变边界:如从“待机”到“激活”的跳变条件,需测试刚好满足和刚好不满足条件时的行为差异。
在HIL中执行边界值测试时,要特别注意仿真步长的影响。若仿真步长为1 ms,而边界值变化发生在0.5 ms内,则可能被步长“平滑”掉。因此,边界值用例应尽量使用信号发生器直接注入阶跃或斜坡信号,并在测试脚本中记录边界点前后各若干毫秒的ECU输出,以便判断响应是否及时、是否正确。
三、状态迁移测试:覆盖ECU内部状态与整车模式切换
状态迁移测试适用于具有明确状态机的ECU功能,如车身控制模块、电池管理系统、自动驾驶模式管理等。在HIL中,状态迁移测试需要同时考虑ECU内部状态和整车级模式。适配要点包括:
- 状态覆盖:确保每个状态至少被访问一次。
- 迁移覆盖:确保每条合法迁移路径至少被执行一次。
- 非法迁移:验证ECU在收到非法迁移请求时是否拒绝或进入安全状态。
以电池管理系统为例,状态包括“休眠”“上电自检”“就绪”“充电”“放电”“故障”。在HIL中,可以通过模拟钥匙信号、充电枪连接信号、绝缘电阻信号等触发状态迁移。测试用例应明确每个迁移的触发条件、预期状态、预期输出(如继电器闭合、CAN报文状态字)以及迁移时间约束。例如,从“就绪”到“放电”的迁移要求在收到放电请求后50 ms内完成,HIL测试脚本需记录实际迁移时间并与阈值比较。
四、场景法:把真实驾驶片段转化为可复现的HIL用例
场景法通过描述一个完整的驾驶任务来覆盖多个功能交互。在HIL中,场景法通常与驾驶模拟器、交通流仿真和传感器仿真结合。一个典型的HIL场景用例应包含:初始条件、环境条件、交通参与者行为、主车操作序列、预期结果和评价指标。
例如,“前车紧急制动”场景:主车以80 km/h跟随前车,车距50 m;前车在2 s内减速度达到6 m/s²;主车ACC应触发制动,并在安全距离内停止。在HIL中,这个场景需要同时激励雷达目标信号、车速信号、制动踏板信号,并监测主车减速度、车距变化和ACC状态字。场景法的优势在于能发现单一功能测试难以暴露的耦合问题,但用例编写成本较高,建议优先覆盖高风险、高耦合的驾驶场景。
五、测试用例管理工具:让用例可追溯、可复用、可回归
HIL测试用例数量大、参数多、与需求强相关,手工管理容易失控。测试用例管理工具应至少具备以下能力:用例建模与版本管理、需求追溯、执行调度与结果记录、缺陷关联。常见工具包括Vector CANoe的Test Feature Set、dSPACE AutomationDesk、NI TestStand、以及开源方案如Robot Framework配合HIL接口库。
在工具中组织用例时,建议采用“需求—测试套件—测试用例—测试步骤”四级结构。每个测试用例应包含:唯一ID、关联需求ID、前置条件、激励信号列表、预期输出、评价指标、自动化脚本路径、最近执行结果。对于HIL特有的实时约束,还应在用例中记录仿真步长、超时阈值和采样率。
六、四种方法的协同使用与一个完整示例
四种方法并非互斥,而是分层配合。以“车道保持辅助(LKA)”为例:
- 等价类划分:将车道线曲率分为直道、缓弯、急弯;将车速分为低速、中速、高速。
- 边界值分析:取曲率半径刚好等于系统工作下限、刚好低于下限;车速刚好等于LKA激活下限。
- 状态迁移测试:验证LKA从“待机”到“激活”到“干预”到“退出”的迁移条件与时间。
- 场景法:设计“弯道中前车突然切入”场景,同时激励车道线、雷达目标和驾驶员扭矩信号,观察LKA与ACC的协调表现。
在HIL中执行时,等价类和边界值用例通常以参数化脚本批量运行,状态迁移用例以状态机测试序列运行,场景用例则以驾驶模拟器回放或场景引擎驱动。所有用例的执行结果应自动回写到管理工具,并生成覆盖率报告。若某条需求未被任何用例覆盖,工具应能高亮提示,从而形成“需求—用例—执行—缺陷”的闭环。
总结来说,等价类划分帮助界定测试范围,边界值分析捕捉临界异常,状态迁移测试验证逻辑正确性,场景法覆盖多系统耦合。四者在HIL中通过实时激励、总线仿真和自动化脚本落地,并由测试用例管理工具统一组织、追溯和回归。掌握这套方法组合,才能让HIL测试从“能跑”走向“跑得准、跑得全、跑得可重复”。