基于TestStand 的BCM 自动化测试平台设计与应用
2021-12-30张燕雯
张燕雯
(工业和信息化部电子第五研究所,广东 广州 511370)
随着汽车行业的不断发展,汽车包含的功能越来越丰富。作为汽车中的核心组成部分,车身控制模块BCM的设计愈加复杂,由此带来了许多安全性和可靠性问题,为了降低系统失效带来的风险,需要对BCM进行安全性和可靠性测试。目前大多数BCM的生产厂家更多的是采用人工方式进行BCM的功能测试验证,投入的人力成本高、耗时久,容易出现漏测甚至误测等问题[1],并且传统的人工测试更适用在BCM的开发试验阶段,无法满足已经进入批量生产阶段的测试要求。
汽车车身控制模块(Body Control Module,简称BCM),是实现车身控制的模块,可以实现离散的控制功能。某车型BCM主要包括后除霜功能、外部灯光控制、内部灯光控制、电动窗管理、RKE管理、防盗报警、尾门开锁管理、门状态管理、解闭锁、雨刮及洗涤管理、钥匙未拔报警管理、后视镜折叠、点火钥匙状态、PEPS报警、天窗控制等功能。
本文提出的一种BCM自动化测试平台由测试管理软件TestStand、实时测试与仿真软件LabVIEW、BCM测试用例和自动化测试脚本构成,针对BCM模块控制软件需求定制开发,将功能规范的描述进行具体化形成测试数据,导入到自动化测试平台中执行,覆盖功能、可靠等类型测试用例,可以进行BCM自动化测试,降低人工执行成本,大大提升汽车产品的安全性和可靠性。
1 BCM自动化测试平台的结构
该平台的硬件部分包含工业控制PC、数据采集卡(NI PCIe-6363/NI PXIe-6363多功能I/O设备)、接线盒、待测BCM、供电电源等。图1为BCM自动化测试平台的结构图。测试人员通过测试机发送测试数据激励工控主机产生模拟信号/数字信号,模拟信号/数字信号经过信号调理电路加载到待测BCM中,BCM根据输入的信号经过逻辑判断处理产生控制信号,该控制信号可以控制继电器进行相应动作,其中继电器是用于实际中连接车窗、转向灯、雨刮、后除霜、车门等负载的中介,在本文的自动化测试平台中利用数据采集卡采集BCM的所有输出信号[2],并与期望的结果进行对比,以判断BCM的功能是否正确实现。
1)BCM可以控制车窗、转向灯、雨刮、后除霜、车门等。
2)便携式计算机用于监视BCM 控制信号发送到继电器响应的时间,并且可以发送CAN/LIN总线测试数据。
3)继电器是用于连接车窗、转向灯、雨刮、后除霜、车门等负载的中介。
图1 BCM自动化测试平台结构图
4)接线盒用于连接模拟信号的输入输出以及数字信号的输入输出。
5)程控电源用于给BCM控制设备供电。
BCM自动化测试平台基于CAN/LIN网络通信,由后除霜功能测试模块、外部灯光功能测试模块、内部灯光功能测试模块、电动车窗功能测试模块、RKE管理功能测试模块、防盗报警功能测试模块等组成。为了降低模块之间的耦合程度,本系统采用结构化的设计方法。系统通过接收RS232总线数据实现自动化数据分析。系统可以根据随机抽样方式和边界值分析自动化生成测试用例数据。系统通过导入自动生成的测试数据实现自动化执行测试用例数据。系统根据用户的选择,自动完成CCITT、MODBUS等形式CRC-16校验值的自动生成。
2 BCM自动化测试平台的软件设计
BCM自动化测试平台实现的是自动化执行测试用例数据,而其软件设计主要是把BCM测试用例转换成自动化测试脚本。将每一个BCM测试用例分解成多个测试步骤,各个测试步骤之间相对独立,每个步骤进行最基础的操作,如:初始化、延时等待、信号输入、信号读取、结果比对等。
首先完成底层搭建,编写动态链接库,将测试过程中涉及的所有变量进行封装。使用LabVIEW完成BCM相关联模块的虚拟化,开发测试序列中调用的代码vi,在这个过程中,主要是根据测试步骤来编写对应的测试代码模块[3]。最后利用TestStand软件建立测试序列,从用户使用角度,设计出符合实际工况要求的自动化测试脚本,测试内容覆盖电动门窗控制、中控门锁控制、遥控防盗、灯光系统控制、电源分配等功能。
3 自动化测试脚本设计
自动化测试脚本的设计主要由测试管理软件TestStand和实时测试与仿真软件LabVIEW来实现。TestStand作为测试流程的管理调度软件,负责测试流程、数据流的控制调配;LabVIEW负责开发具体的测试项,包括数据的采集、处理、存储等细节工作。
在TestStand软件中,针对每个测试功能点,在“Sequence Editor”窗口编写独立的自动化测试序列,每个测试序列文件包括多个需要测试的步骤“Step”[4]。如图2所示,以门状态管理测试功能为例,该序列名为“Door status-12V”,指该序列实现电源电压12V状态下的门状态管理功能测试。该序列中包含所有门状态管理功能相关的测试用例,每个测试用例在序列中由一条或多条步骤“Step”实现,每一条“Step”对应一个测试代码模块vi。图2中,在TestStand软件中完成对“Step”的设置,设置所调用的vi的路径,并对此处调用的vi模块设置好输入参数的默认值,同时设置预期输出参考值,模拟测试人员的手动测试。
图2 TestStand窗口界面
图3 LabVIEW程序框图界面
在自动化测试序列中调用的vi是由LabVIEW软件开发的测试代码模块。在LabVIEW软件中,针对经常执行的操作和步骤,开发相应的代码vi,以便测试序列调用[4]。如图3所示,以门状态管理功能测试vi模块为例,在程序框图窗口按照功能的实现逻辑完成程序的编辑,首先判断点火开关状态、门开关状态,由于该vi可由多个用例调用使用,所以这里先判断输入变量的状态,接着等待1000ms,获取门状态输出。在测试序列调用该vi时,获取的输出与预期输出参考值一致则该用例通过,否则不通过。另外,在软件的前面板窗口创建用户界面,可以使程序运行时的效果更为直观。同时,用户也可通过该界面实现对测试内容的配置,实现单独执行某条测试用例的目的。
4 BCM自动化测试平台的测试应用
打开TestStand软件,输入登录信息进行登录,打开Test-Stand Sequence文件,选中想要运行的步骤,右键选择“Run Selected Steps”,软件首先分析Sequence文件,根据实现功能的不同,步骤运行的时间会有所不同,运行结束的状态也会有所不同。如图4所示,第一步运行的是改变电压的步骤,这一步实现供电电源电压值的修改,没有相应的输出,因此运行完成后状态为“Done”,当执行步骤有输出时,状态为“Passed”或“Failed”,分别对应实际输出和预期参考值一致和不一致。
图4 自动化测试平台运行界面
当点击菜单栏中的绿色三角形按钮,可运行Sequence文件中的所有用例。如需单独执行某条用例,也可以右键选择执行选中的步骤。
运行结束后,可以浏览此次运行的结果报告,如图5所示,同时在Sequence文件所在目录下会自动生成此次的运行报告,方便后期查看和整理。
图5 报告查看界面
作为一款图形化编程软件,LabVIEW的编程过程非常直观且容易上手。当用例需要修改时,用户可以在文件中找到项目文件双击打开或者在LabVIEW软件中浏览找到项目文件打开,弹出项目浏览器对话框,点击“vi”可以查看到自动化用例调用的各个vi,打开后可以进行修改。
经过对某车型的BCM的测试,原本人工测试需要一位测试工程师测一个半月的工作,利用该自动化测试平台可实现两天完成全部的测试,测试效率极大提高,同时最大程度避免了人为操作带来的误差。此外,该平台操作简单,在执行自动化测试脚本之前已经设置好了每条测试用例的初始状态、输入以及预期参考值,那么在平台运行的全过程都无需测试人员再进行进一步的操作。该平台的维护也比较方便,对于功能升级的BCM的测试,只需修改或新增相应的vi模块和测试序列即可。因此,对于处于研发生产阶段的BCM测试以及具有批量测试需求的BCM测试,该平台具有很大的优势。
5 结论
随着工业4.0的发展,自动化测试将成为未来汽车行业测试的趋势,面对更加复杂的汽车功能其优势愈加突显[5],具有更为广阔的市场前景。本文提出的基于TestStand的BCM自动化测试平台,操作简单,具有良好的兼容性和可扩展性,可以缩短测试的周期,节省人力成本,提高测试效率,同时将BCM的测试流程化,避免漏测、误测和人为引入的误差等问题。