嵌入式系统知识点总结:如何对嵌入式系统进行自动化全面测试
嵌入式系统知识点总结:如何对嵌入式系统进行自动化全面测试串口:被测系统通过串口从其他模块/系统接收指令,并根据指令执行相关功能逻辑该嵌入式系统的输入输出有:嵌入式系统举例一般嵌入式系统有多种接口(如UART,CAN,Ethnet,Wifi,SPI,I2C)用作输入和输出,也可能带有实体按键作为输入和显示屏作为输出,如何对这样的系统进行全面的测试呢?比如下面一个被测的嵌入式系统:
嵌入式系统一般是产品的核心单元, 嵌入式系统是否可靠决定了整个产品的质量好坏,如果能在产品的早期阶段对嵌入式系统进行充分和全面的测试,将会很大程度提高产品的可靠性, 减少产品发布后在实际运营过程中可能出现的各种棘手问题。
那么如何在产品的早期阶段对嵌入式系统进行全面的测试呢?嵌入式系统往往跟外部各种模块或系统进行交互,这使得嵌入式系统的测试难度很大,很多项目在集成阶段才对嵌入式系统的功能进行测试,而集成测试主要是发现两个或多个模块配合工作过程中可能出现的问题,并不能发现嵌入式系统一些本身的深层次问题,使得这些问题在产品实际运营很长时间后才暴漏出来,给企业造成了很大的损失。
今天给大家介绍一款支持在产品研发过程中对嵌入式系统进行自动化测试的工具(宏控UTP协同自动化测试系统), 宏控UTP协同自动化测试系统支持全面仿真能力,不需要等到集成阶段就能对嵌入式系统做充分的测试,支持各种类型的异常注入,能够模拟异常和正常的测试场景, 支持在尽可能早的阶段发现嵌入式系统的各种问题。
本文现结合具体的例子中典型的测试场景,介绍宏控UTP协同自动化测试系统的功能。
嵌入式系统举例
一般嵌入式系统有多种接口(如UART,CAN,Ethnet,Wifi,SPI,I2C)用作输入和输出,也可能带有实体按键作为输入和显示屏作为输出,如何对这样的系统进行全面的测试呢?
比如下面一个被测的嵌入式系统:
该嵌入式系统的输入输出有:
串口:被测系统通过串口从其他模块/系统接收指令,并根据指令执行相关功能逻辑
信号(I):被测系统接收其他模块或系统输入的外部信号
实体按键:用于用户输入控制操作
屏幕:用于显示各种状态和数据信息
信号(O):用于对外输出信号给其他模块或系统
网口:通过HTTP/TCP/UDP等协议同服务器通信
集成测试存在的问题
对该嵌入式系统的测试,常用的方法是将外部真实的模块/系统都集成进来一起进行测试,测试所集成的系统是否能正常工作,如下图所示:
该示例被测系统在集成测试过程中典型测试用例的测试步骤为:
步骤一:通过外部模块/系统(1) 向被测系统发送串口控制指令
步骤二:通过外部模块/系统(2) 向被测系统发送信号
步骤三:点击被测系统的按键
步骤四:通过被测系统的屏幕,检查显示的信息是否正确
步骤五:通过外部模块/系统(3),检查被测系统输出的信号是否正确
步骤六:通过外部模块/系统(4),检查被测系统发出的数据(消息)是否正确
集成测试有如下困难和挑战:
- 外部依赖:集成测试需要外部模块都具备的情况下才能进行,很多情况下不具备所依赖的外部模块/系统,需要协调各方面资源,并且受各种条件影响比如跨部门协作,不同项目的周期,支持的人员,还可能受采购的成本影响, 使得测试活动推进比较艰难。
- 测试不充分:集成测试中各模块/系统是真实的模块/系统,一些异常场景没办法在实际的环境中创造出来,往往系统功能跑通了即认为测试通过了,而实际上仍然有很多潜在的问题没有发现出来,为之后产品实际运营中出现风险留下隐患。
宏控UTP系统仿真环境测试
(1)全仿真自动化测试
宏控UTP协同自动化测试系统支持全面自动化测试覆盖,通过多种类型的测试机器人来为被测嵌入式系统提供全仿真环境,测试机器人在UTP平台协同调度下自动仿真外部模块/系统或者模拟操作人员, 按照自定义的时序逻辑,来实现对该嵌入式系统的全面测试。
- 全仿真测试系统图:如下图所示,UTP协同测试平台协同调度多个测试机器人对被测嵌入式系统进行全面仿真测试。
- 测试机器人的功能:UTP系统根据测试脚本的逻辑协同调度多个测试机器人(由软件和硬件组成)来对各个输入和输出进行测试和检查,在上图中,各测试机器人的功能为:
- 串口测试机器人:仿真外部模块/系统,自动通过串口同被测系统进行通信,自动发送、接收和检查串口数据。
- 信号仿真测试机器人:仿真外部模块/系统,自动产生测试所需要的各种输入信号,对被测系统进行信号激励。
- 按键操作测试机器人:模拟人工进行按键操作,自动对被测系统产生按键输入。
- 显示检查测试机器人:模拟人工检查界面显示,自动识别和检测屏幕上显示的各种信息。
- 信号检测测试机器人:仿真外部模块/系统,自动检测被测系统输出的信号是否在规格范围内。
- 网络测试机器人:仿真外部模块/系统,自动通过网口同被测系统进行通信,自动发送、接收、回复和检查通信的数据。
- 自动化测试步骤:该示例被测系统在全仿真自动测试过程中典型测试用例的测试步骤同集成测试中的手工测一样,如下:
步骤一:UTP平台自动控制串口测试机器人向被测系统发送串口控制指令
步骤二:UTP平台自动控制信号仿真测试机器人向被测系统发送信号
步骤三:UTP平台自动控制按键操作测试机器人点击被测系统的实体按键
步骤四:UTP平台自动控制显示检查测试机器人识别被测系统的屏幕,检查显示的信息是否正确
步骤五:UTP平台自动控制信号检测测试机器人,检查被测系统输出的信号是否正确
步骤六:UTP平台自动控制网络通信测试机器人,检查被测系统发出的数据(消息)是否正确
- 积木式脚本设计:测试人员在浏览器客户端通过搭积木的方式进行测试逻辑的设计, 如下图:
- UTP系统仿真测试具有如下优势:
- 仿真环境测试,支持异常注入,可以覆盖各种测试场景,在最早阶段发现被测系统可能存在的问题
- 不依赖外部模块/系统,可以根据团队需求随时开展测试工作
- 提供图形化方式支持用户自定义仿真和时序逻辑进行测试,可以覆盖各种业务逻辑
- 支持用户根据被测系统实际特点灵活搭建测试环境
- 极大程度提高测试效率,便于回归测试
(2)部分仿真自动化测试
在实际测试中有时候可能需要对某一部分功能进行全面的测试,比如某嵌入式系统在实际网络通信过程中经常出现不规律的问题,这时候可能需要重点对通信功能进行测试。宏控UTP协同自动化测试系统支持部分仿真测试,即一部分用真实的外部模块/系统,另一部分用测试机器人来仿真, 如下图所示。
上图中串口、信号(I)、信号(O)的接口分别连接真实的外部模块/系统, 重点需要测试的网络通信功能通过仿真测试机器人来测试, 同时按键通过按键操作测试机器人来自动操作, 屏幕显示通过显示检查测试机器人来自动检查。
(3)UTP协调测试系统支持仿真的类型
宏控UTP协同自动化测试系统支持多种仿真能力,包括:
- 接口总线通信节点仿真
支持各种接口通信的仿真,如RS232/422/485 CAN Ethernet I2C SPI SRIO FC光纤等,支持仿真通信节点的各种异常和正常场景
- 网络通信链路的仿真
支持整个无线通信链路(通信模块、基站、网络等)的仿真,仿真链路中各种异常情况
支持网络服务器的仿真,仿真服务端的各种异常情况
- 云端服务器的仿真
支持对云端的各种行为进行仿真,用于测试物联网终端同云端的各种业务逻辑
- 信号仿真
支持多种规格信号的仿真,通过动态地对被测对象进行信号激励,仿真各种外部输入信号。
更多类型的自动化测试
宏控UTP系统除了支持上述介绍的嵌入式测试外,还支持各种测试,如串口通信测试、UDP/TCP通信测试、GUI桌面软件测试,性能测试,物联网测试等, 更多信息可访问https://www.macrosoftsys.com。
文章链接:https://mp.weixin.qq.com/s/RYt-4-T9jHxPZzzcY9CKjQ
转载自:痞子衡嵌入式
文章来源:如何对嵌入式系统进行自动化全面测试?从实际的例子说起
版权申明:本文来源于网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。