嵌入式系统如何进行更充分的测试?自动化仿真测试带来的价值
来源:嵌入式专栏发布时间:2022-10-251346浏览
询问 AI
来源 | 宏控软件
嵌入式系统一般是产品的核心单元, 嵌入式系统是否可靠决定了整个产品的质量好坏,如果能在产品的早期阶段对嵌入式系统进行充分和全面的测试,将会很大程度提高产品的可靠性,减少产品发布后在实际运营过程中可能出现的各种棘手问题。
那么如何在产品的早期阶段对嵌入式系统进行全面的测试呢?嵌入式系统往往跟外部各种模块或系统进行交互,这使得嵌入式系统的测试难度很大,很多项目在集成阶段才对嵌入式系统的功能进行测试,而集成测试的主要目标是确认各个组成部分能在一起正常工作,集成测试能够发现各组成部分在一起配合工作过程中出现的问题,并不能发现嵌入式系统一些本身的深层次问题,这些问题可能在产品实际运营很长时间后才暴漏出来,给企业造成了很大的损失。
今天给大家介绍一款支持在产品研发过程中对嵌入式系统进行全面充分测试的自动化测试的工具(宏控UTP协同自动化测试系统,简称宏控UTP), 宏控UTP系统支持多种类型的测试,能够模拟各种异常和正常的测试场景, 支持在尽可能早的阶段发现嵌入式系统的各种问题,并极大程度提供团队的测试效率。
宏控UTP系统支持的测试类型包括:
网络通信测试, 如TCP通信测试,UDP通信测试,支持对各种自定义数据帧进行测试
总线通信测试,如RS232/422/485, CAN等,支持对各种自定义数据帧进行测试
无线通信测试,支持WiFi, 4G, Lora, NB, 北斗等各种无线连接通信测试,支持各种场景的仿真测试。
I/O信号测试, 支持控制各类实验室仪器(如示波器、信号发生器、协议分析仪等)对信号的输入和输出进行测试。
物联网测试,支持对物联网设备端和物联网云端进行自动化测试
GUI界面测试,支持模拟人工自动操作软件界面,自动检测软件界面信息
人机交互测试,支持模拟人工自动操作设备实体按键和触摸屏,自动检查屏幕显示。
宏控UTP系统更多的介绍信息可以访问公司官网:https://www.macrosoftsys.com
宏控UTP系统的公有云版本支持免费使用,可以在电脑上打开下面链接进入使用:
https://www.antestin.com
您也可加入交流群参与相关技术的讨论,获得及时的技术支持。

本文现结合实际例子分析嵌入式系统测试中可能存在的问题,探讨如何对嵌入式系统进行更加全面和充分的测试,并介绍宏控UTP协同自动化测试系统如何对嵌入式系统进行全面自动化测试。
嵌入式系统举例
一般嵌入式系统有多种接口(如串口,网口,CAN,无线接口等),可能有传感器采集外部信息,有显示屏显示状态和数据,并可能通过无线模块进行数据通信。如何对这样的系统进行全面的测试,减少后期的各种潜在问题呢?
比如下面一个被测的嵌入式系统:

该嵌入式系统通过下面接口/模块同外部通信:
串口:用于嵌入式系统的调试(如串口日志),也用于接收一些外部控制指令
CAN:用于嵌入式系统同其他模块/系统进行控制和数据通信
无线模块:用于嵌入式系统进行无线连接,如WiFi,蓝牙,4G/5G, NB, Lora等,连接远程服务器,并在无线连接上进行各种数据通信,如TCP, UDP, HTTP等。
SPI:用于同其他模块(如传感器)进行数据传输,接收采集的数据。
显示屏:用于显示各种状态和数据信息,如数值显示,报警显示等
嵌入式系统的常规测试方式
对嵌入式系统的测试,常用的方法是将外部真实的模块/系统都集成进来一起进行测试,测试所集成的系统是否能正常工作。
示例嵌入式系统的集成测试环境中,连接了各个实际的外部模块/子系统,组成一个完整的系统,如下图所示。

示例嵌入式系统集成测试环境的各个模块连接关系如下:
被测系统通过串口连接串口调试工具,用于显示运行中的串口日志,并接收调试和控制指令
被测系统通过CAN接口同其他真实模块(CAN通信节点)进行业务通信
被测系统通过无线模块同网络进行通信,如WiFi,蓝牙,4G/5G, NB, Lora, 北斗等
被测系统通过SPI接口连接传感器,获取传感器采集的数据信息
被测系统通过显示屏显示各种状态和数据信息
集成测试中,被测嵌入式系统同外部各真实模块/子系统进行通信/交互,可以测试整个系统(如上图,包含嵌入式系统和所连接通信的各个模块)是否能配合正常地工作,是否能完成预期功能。集成测试可以发现被测系统在正常情况下存在的问题,待这些问题解决完成后,整个系统可以正常连通工作后,一般就认为测试完成了。
集成测试不是充分的测试,遗留的问题是产品不稳定的隐患
集成测试是必须做的,但集成测试是不充分的,不能覆盖各种异常情况。由于参与集成的各模块是系统的真实模块,当模块正常工作时,很难人为注入错误,测试人员没有合适的手段进行异常场景的充分覆盖的测试。
上述示例中的被测系统,存在下面一些不能充分测试的地方:
串口测试:使用串口调试工具进行手工串口测试,很难对各种数据组合进行测试,很难进行各种复杂场景的测试,很多进行数据的自动比较和判定。
CAN通信测试:由于同嵌入式系统通信的各通信节点是系统的组成模块,集成测试只能验证节点之间的通信是否正常,而不能对异常场景进行测试。由于真实模块不能进行错误注入,不能创造出测试人员期望的各种异常场景,无法进行全面的测试覆盖。
传感器输入测试:由于嵌入式系统连接传感器,集成测试时只能通过给传感器准备不同的外部输入来创造不同的测试场景, 而所准备的外部输入受客观情况的约束而数量有限,很难对嵌入式系统同传感器之间的各种异常数据、算法边界、信号规格进行测试,无法进行全面的测试覆盖。
无线通信测试:嵌入式系统通过无线模块进行网络通信,集成测试一般在一个固定的环境中(如实验室)进行测试,只能覆盖网络环境正常的情况下的嵌入式系统的基本通信功能,难以覆盖各种异常场景下的通信功能,而在实际运营环境中,各种异常情况都可能出现。
如何对嵌入式系统进行全面和充分的测试(仿真测试)
嵌入式系统的充分测试的关键是需要有进行充分测试的环境,该测试环境能够支持模拟出各种正常和异常的测试场景。仿真测试可以有效地提供这种测试环境, 进行仿真测试,前提要有合适的仿真测试工具,仿真工具用于在测试时代替外部模块同被测系统进行交互,仿真工具一般支持异常注入,能够模拟出多种测试场景。


全面和充分的测试需要大量测试执行时间,手工执行很困难
对嵌入式系统进行充分的测试(如仿真环境),测试人员需要根据实际业务设计大量测试场景(测试用例),并在仿真环境中进行测试执行。这就带来另一个问题,大量测试用例的手工执行需要耗费大量人力,并且每次回归测试都需要耗费大量时间,经常是测试团队辛苦地连续加班,也难赶上项目的进度要求。
宏控UTP系统的自动化仿真测试,让您高效进行全面测试
宏控UTP协同自动化测试系统支持全自动化测试,支持全仿真测试和部分仿真测试,UTP系统提供多种类型的测试机器人(软件)用作仿真工具来为被测嵌入式系统提供全仿真环境(或者部分仿真环境), 支持全自动化进行仿真和测试,大大提高了测试效率。示例嵌入式系统使用UTP进行全仿真自动化测试的环境如下。

UTP支持自动执行测试用例来对各种测试场景进行测试, 测试机器人在UTP平台协同调度下自动仿真外部模块/系统或者模拟操作人员, 按照自定义的时序逻辑自动执行,实现对该嵌入式系统的全面测试。
UTP系统根据测试脚本的逻辑协同调度多个测试机器人(由软件和硬件组成)来对各个输入和输出进行测试和检查,在上图中,各测试机器人的功能为:
- 串口通信测试机器人:在UTP平台协同控制下自动通过串口同被测系统进行通信,自动发送、接收和检查串口数据。
- CAN通信仿真测试机器人:仿真外部CAN模块,在UTP平台协同控制下通过CAN接口自动进行数据帧的发送,接收,解析和检查。
- 传感器仿真测试机器人:仿真传感器,在UTP平台协同控制下自动产生各种规格的信号和数据,通过SPI接口进行被测系统通信。
- 无线通信仿真测试机器人:仿真整个通信链路(包括无线通信模块、中间各环节和通信对端),在UTP平台协同控制下自动同被测系统进行无线通信。
- 屏幕显示检查测试机器人:模拟人工检查界面显示,自动识别和检测屏幕上显示的各种信息。
支持全仿真和部分仿真环境下的测试,支持异常注入,可以覆盖各种测试场景,在最早阶段发现被测系统可能存在的问题
支持对嵌入式系统进行全自动化测试,极大提高测试效率,便于回归测试
支持搭积木的方式设计测试用例和脚本,支持自定义仿真和时序逻辑,使用起来非常便捷
支持多人同时使用系统共同进行测试,支持团队共享测试
支持远程在线使用,极高的性价比
2.UTP系统自动化测试的能力
网络通信测试, 如TCP通信测试,UDP通信测试,支持对各种自定义数据帧进行测试
总线通信测试,如RS232/422/485, CAN等,支持对各种自定义数据帧进行测试
无线通信测试,支持WiFi, 4G, Lora, NB, 北斗等各种无线连接通信测试,支持各种场景的仿真测试。
I/O信号测试, 支持控制各类实验室仪器(如示波器、信号发生器、协议分析仪等)对信号的输入和输出进行测试。
物联网测试,支持对物联网设备端和物联网云端进行自动化测试
GUI界面测试,支持模拟人工自动操作软件界面,自动检测软件界面信息
人机交互测试,支持模拟人工自动操作设备实体按键和触摸屏,自动检查屏幕显示。
如何使用宏控UTP系统进行自动化测试
如何使用宏控UTP系统进行自动化测试
UTP系统使用过程非常简便,下面是UTP系统基本使用流程
(1)部署和配置自动化测试机器人
根据被测系统的特点,选择合适的测试机器人进行部署和配置

下图是已配置的各测试机器人

(2)使用配置的测试机器人编写测试用例
UTP系统支持搭积木的方式编写测试用例和脚本,用户可以根据测试逻辑设置各测试机器人时序关系,所设计的测试用例所见即所得,可以直接执行。

(3)自动执行测试用例,批量执行测试集
将设计好的测试用例按照测试的目的放到相应的测试集中,用于回归测试时自动化连续执行。

新闻来源:嵌入式专栏,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
