本文介绍如何对各种控制器内的嵌入式软件做自动化测试,并推荐一款支持对嵌入式软件进行全面自动化测试的工具。该工具支持CAN通信测试、LIN通信测试、以太网通信测试、各类传感器仿真测试,支持对基于MCU、SOC、DSP、FPGA等开发设计的各类嵌入式系统进行自动化测试,能够全面覆盖嵌入式系统的各种时序逻辑和业务功能。目前该工具支持申请免费试用(请在文章的末尾查看如何申请试用)。
控制器(包括ECU和域控制器)的嵌入式系统一般具有多路输入和输出接口,如IO信号接口、模拟信号接口、I2C通信接口、SPI通信接口、CAN通信接口、以太网通信接口、无线通信接口等,控制器内部需要实时响应这些接口并执行各种复杂的时序逻辑。如何对这样的嵌入式系统进行充分测试呢?如何覆盖各种正常和异常的测试场景呢?
宏控UTP协同自动化测试系统(以下简称UTP测试系统)是一款通用的自动化测试系统,支持全仿真和部分仿真环境测试, 支持SIL和HIL测试,支持对总线通信、信号检测、传感器仿真、无线通信、人机交互等各方面进行自动化仿真和测试。同时UTP测试系统支持用户自定义各种时序逻辑,支持各种复杂时序的自动化测试,支持异常注入;UTP测试系统还提供全流程的自动化测试管理功能,支持对整个测试工作进行全面的测试管理。
UTP测试系统的功能:
支持接口总线通信测试:支持各种总线通信测试,如:CAN、LIN、FlexRay、CANFD通信,RS232/RS485/RS422通信,以太网通信(TCP/UDP协议、DoIP协议、SOME/IP协议、DDS协议等),I2C通信,SPI通信等。
支持无线通信仿真测试:支持多种无线通信的仿真测试,如4G/5G、蓝牙、WIFI、GPS、北斗等。不需要依赖真实的无线环境,通过仿真实现对业务的全面自动化测试,支持各种异常场景的仿真。
支持信号仿真与测试:支持各种IO信号、PWM信号、模拟信号的测试,支持自动传感器信号仿真测试,支持自动检测和判定被测系统输出的各种信号。
支持UI显示识别与测试:支持各种嵌入式系统UI(如屏幕和数码管等)的显示进行识别、检测和自动判定,支持对各种桌面软件和嵌入式软件的GUI进行测试(如Qt软件测试)。
嵌入式自动化测试的示例方案
下面以某电机控制器中电机控制模块的自动化测试方案为例,分析如何使用宏控UTP测试系统对被嵌入式系统建立自动化测试环境。
(1)被测系统组成
电机控制模块是电机控制器的核心模块,电机控制模块通过CAN接口同整车控制器(VCU)和电池管理系统(BMS)通信,接收VCU发来的目标转速、扭矩的控制信息,通过PWM信号控制电机运动,实时采集和处理各种传感器信号(如转速、扭矩、温度等),并将当前的转速等信息发给整车控制器(VCU)。
(2)被测系统的一个典型工作时序
① 电机控制模块通过CAN接口接收整车控制器发送的转速和扭矩信号
② 电机控制模块向IGBT输出PWM电机控制信号
③ 电机控制模块检测电流、电压、转速、扭矩和温度等信号
④ 电机控制模块将当前的转速和扭矩通过CAN接口发送给整车控制器
(3)搭建自动化仿真环境
下图宏控UTP测试系统为被测电机控制模块提供全仿真测试环境。
如上图所示,UTP测试系统建立了电机控制模块全仿真的自动化测试环境,用户在UTP协同测试平台上可对被测电机控制模块进行各种时序和控制逻辑的测试,对各种正常和异常场景进行全面验证。
UTP测试系统通过各种自动化测试机器人来实现不同的仿真和检测功能, 这些自动化测试机器人包括:
① 整车控制器仿真机器人:自动仿真整车控制器同电机控制模块进行CAN通信
② 电池管理系统仿真机器人:自动仿真电池管理系统同电机控制模块进行CAN通信
③ PWM信号检测机器人:自动检测电机控制模块发出的PWM控制信号
④ 电流信号仿真机器人:自动仿真电机反馈的电流信号
⑤ 电源信号仿真机器人:自动仿真电机反馈的电压信号
⑥ 转速信号仿真机器人:自动仿真电机反馈的转速信号
⑦ 扭矩信号仿真机器人:自动仿真电机反馈的扭矩信号
⑧ 温度信号仿真机器人:自动仿真电机反馈的温度信号
(4)设计自动化仿真测试时序
可以在UTP系统上编写各种测试时序逻辑,UTP系统将按时序逻辑调度测试机器人进行协同执行,实现对被测电机控制模块的全面自动化测试。下面是在UTP系统上创建的自动化测试用例(对应上面工作时序的一个测试时序逻辑)。
使用宏控UTP协同自动化测试系统可以编写各种测试时序,所编写的测试逻辑可以自动化执行,方便地实现对各种异常和正常场景进行全覆盖测试。
嵌入式自动化测试的使用方法
UTP自动化测试系统由UTP测试平台和测试机器人盒子(内部包含各种自动化测试机器人)组成,下面介绍UTP系统的具体使用方法。
(1)启动并登录测试机器人盒子
测试机器人盒子里运行了多种测试机器人(比如CAN测试机器人、以太网测试机器人、IO信号测试机器人等), 这些测试机器人将通过硬件模块连接被测嵌入式系统。
(2)登录UTP测试平台
输入账号和密码登录UTP平台,支持多人同时登录使用。
(3)创建测试项目
输入项目名称、被测对象名称和项目描述信息,点击创建项目,支持创建多个测试项目(对应不同的产品项目)。此处以车身控制器的测试为例创建项目。
(4)配置项目使用的测试机器人
根据实际项目使用需要,配置一种或多种测试机器人,下图配置了CAN通信测试机器人、IO信号测试机器人、PWM信号测试机器人、模拟信号测试机器人。
(5)设计自动化测试用例
用户可以设计各种时序逻辑和业务场景的测试用例,不需要编写代码,支持用图形化积木式创建各种测试用例,支持用户设计任意多个测试用例:
所设计的用例自动产生测试步骤,下图是上面测试时序对应的测试步骤:
(6)执行测试集
支持选择一组测试用例创建测试集,支持通过测试集一键执行所选择的多个测试用例,用于自动化的回归测试。下图中创建了两个测试集,可以分别执行一键自动化回归测试。
(7)查看测试报告
UTP测试系统自动生成测试报告,支持导出测试报表(Word文件格式),报告包含所执行的用例统计信息和各用例执行的详细结果,如下图的示例测试报告中自动标出失败的用例对应的步骤和失败原因,方便快速定位问题。
支持灵活选配各种测试功能
以下功能支持根据项目实际需求进行选配:
总线测试功能:CAN、LIN、FlexRay、CANFD、RS232、RS485、RS422、以太网、I2C、SPI等
信号测试功能:IO信号、PWM信号、模拟信号
无线测试功能:4G/5G、蓝牙、WiFi、导航(GPS、北斗)
UI测试功能:各种软件UI、嵌入式系统UI
无需编程,支持各种复杂场景的测试
支持图形化设计各种测试用例,不需要进行C/C++等语言编程
支持快速设计各种复杂时序逻辑,支持异常注入,支持场景仿真
提供全流程自动化测试管理
统一管理各种测试文档、测试脚本、测试工具;
支持产品追溯矩阵、支持测试需求、测试用例、测试结果管理
支持团队共享各种测试资源
支持快速搭建各种自动化测试环境
支持各种嵌入式系统测试、总线通信测试、信号仿真测试等
支持硬件在环(HIL)和软件在环(SIL)测试
支持搭建半实物半仿真环境和全仿真测试环境
支持产品快速迭代,持续保障产品可靠
支持建立完备的自动化测试用例,对产品各种功能、性能、可靠性进行全面测试
产品变更时进行自动化回归测试,持续保障被测产品的可靠稳定
提高测试效率,降低测试成本
统一管理各种测试文档、测试脚本、测试工具;
人工需要测试几周的工作,自动化测试几个小时就能完成
手工难以测试的功能,自动化可以轻松测试
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取