一文详解!嵌入式软件的自动化测试框架、测试流程与功能研究分析

news2024/11/18 13:50:51

目录

引言

1.嵌入式软件自动化测试平台分析

2.嵌入式软件自动化测试平台概要设计

3.嵌入式软件自动化测试平台详细设计

3.3 功能设计


引言

嵌入式软件是指被设计用于嵌入或控制另一个产品、设备或系统的软件。它在各种应用领域(例如消费电子、工业控制、医疗设备)中都得到广泛应用。由于嵌入式软件的复杂性和安全性要求较高,因此需要进行自动化测试。

进入二十一世纪之后,硬件元器件得到了飞速发展,从而也是的嵌入式软件的功能更加强大和复杂.随之而来的也是嵌入式软件测试工作的加重,传统的软件测试技术已经难以满足嵌入式软件越来越复杂的需求.而目前,市场上已经有较多的传统软件自动化测试技术,如何在这些技术的基础上进行改进,从而能够适应嵌入式软件环境,从而实现嵌入式软件的自动化测试,是嵌入式软件发展的重要方向.

1.嵌入式软件自动化测试平台分析

嵌入式软件的自动化测试即利用脚本来自动化驱动嵌入式软件的运行,并且自动收集相关数据进行分析,最终生成相应的测试报告.虽然,嵌入式软件的自动化测试流程与一般PC机应用软件的自动化测试流程相同。但是,由于嵌入式软件软件对电子设备的高度依赖性,以及电子设备收周围环境影响较重,从而导致嵌入式软件的自动化测试平台存在如下的问题.

(1)由于电子元器件受到周围环境的影响,无论在宿主机上所进行的动态测试多充分,也无法保证嵌入式软件在实际的硬件环境中通过.

(2)硬件系统非常复杂,难以对测试过程中所发现的问题进行排查.

(3)植入桩点会影响系统的实时性.

(4)上位机的测试环境中,由于上位机与下位机的通信量较大,测试结果数据较多,容易导致通信的堵塞.

2.嵌入式软件自动化测试平台概要设计

通过对嵌入式自动化测试框架的分析,本文提出一种由脚本驱动器.接口映射表.数据驱动器和支持函数库所组成的,针对嵌入式自动化软件测试的组合型测试框架.

如图1所示,高层脚本调用执行下层脚本;底层运行脚本通过查询接口映射表调用待测试系统接口进行驱动和通信;测试脚本从数据文件调用数据执行测试。

(1)脚本驱动器

脚本驱动器调用高层脚本,高层脚本调用下层脚本.底层脚本包括待测试系统具体的测试步骤.

(2)接口映射表

接口映射表借鉴了关键字驱动测试框架中的组件映射表思想.测试人员根据待测试系统的实际需求,设计接口名称和参数,从而实现待测试系统的抽象化.在运行测试脚本是,首先通过映射表匹配接口名称和参数,当系统接口改变时,只需要改变映射表即可,从而实现测试系统与待测试系统的松耦合.

(3)数据驱动器

数据启动器是测试脚本与数据文件的连接器,通常采用文本文件.XML文件等来实现.

在测试过程中,需要数据时,有数据驱动器读取数据.数据驱动器是脚本与测试数据分离,当测试数据变更时,只需要修改数据驱动器,而不需要对脚本进行改动.

(4)支持函数库

包含了数据缓存.文件操作.字符串处理等测试框架中所用到的通用处理函数.

3.嵌入式软件自动化测试平台详细设计

3.1 测试框架设计

嵌入式软件自动化测试平台的卡框架,采用嵌入式软件通用的Host/Target测试策略.

如图2所示,本文所设计的嵌入式软件自动化测试平台采用测试管理工具和测试代理双层结构。

3.2 测试流程设计

在进行嵌入式软件自动化测试时,测试人员的工作包括:编写配置文件.编写脚本.生成数据文件.测试报告分析等工作.嵌入式软件的自动化测试流程如图3所示.

当建立了管理工具和测试代理自检的通信之后,向测试代理发送测试请求,并且将脚本和数据传送到测试代理上.测试代理将测试脚本存放到特定的区域执行,并且将测试结果返回给宿主端.当宿主端接收到测试代理所发送脚本执行完毕信号后,发送新的测试脚本和数据给测试代理,直到所有的脚本测试完成之后,对测试代理所返回的测试结果进行分析,得出最终的测试报告.

3.3 功能设计

3.3.1 管理工具功能

为了不占用宿主段过多资源,将一些协助测试模块都放在宿主端中.管理工具的功能结构如图4所示.

(1)脚本配置管理模块

在进行嵌入式软件自动化测试之前,需要设计一份配置文件.在配置文件中定义好了脚本位置.宿主机与测试代理之间的通信.脚本执行时间间隔.通信桩点个数等内容.测试管理工具先对脚本配置文件进行解析,并且将解析的信息传送给目标机.

(2)插桩模块

通过插桩对待测试软件的功能进行细分,并且根据执行的情况,来分析待测试软件的测试覆盖情况.

(3)日志分析生成模块

测试日志文件中主要包含了待测试软件的测试结果,以及测试覆盖信息.其中测试报告中包括了测试跟踪信息.测试用例.测试用例的期望和实际结果.测试用例的执行情况及汇总等.测试覆盖信息包括:测试和未测试的代码段.功能的覆盖标记及汇总等信息.

(4)数据通信模块

主要负责宿主机与测试代理之间的消息通信.

3.3.2 测试代理功能

测试代理运行在目标机上,是整个嵌入式软件自动化测试平台的核心,测试代理的整体结构如图5所示.

(1)测试驱动模块

根据配置管理,对管理工具发送的测试脚本进行解析,并且调用工具库中的通用函数来完成测试.同时,将测试结果和桩点覆盖信息存入到特定区域.

(2)数据驱动模块

在数据文件主要包含了测试脚本文件.测试数据文件和测试结果文件.当测试需要数据是,可以通过数据驱动模块完成数据表查找和数据批量处理等操作.对于测试数据量大,测试步骤类似的测试过程,可以极大的减少测试的复杂度.

(3)数据通信模块

主要负责与管理工具的数据通信模块进行数据交互.主要负责接收管理工具所发送的配置信息.脚本信息和数据文件信息;同时将测试结果和测试覆盖信息返回给管理工具.

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=2szVdJcy6VnqVi_zYhQd8aI9U5yfUv34&authKey=leQfP2SBsSV1%2FUzpd2OtJhdk%2F0SH%2FzEdi8uCVyM4q8w%2FHQEA1WUh3aqS9kyXZxUH&noverify=0&group_code=574737577

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/641733.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

steam搬砖全套操作流程之如何卖货(第③课)

上一篇文章阿阳分享了Steam项目如何选品,今天就给大家说说装备如何发货等重要事项。 本节课主要为大家讲解:定价规则,加价原则,认识装备磨损度和印花,自动发货软件和自动上架软件的讲解。 (Steam装备选品…

ESXi 7.0 U3m Inspur (浪潮) 定制版 OEM Custom Installer CD

VMware ESXi 7.0 Update 3m - 领先的裸机 Hypervisor (All OEM Customized Installer CDs) ESXi 7.0 U3m Standard (标准版) ESXi 7.0 U3m Dell (戴尔) 定制版 OEM Custom Installer CD ESXi 7.0 U3m HPE (慧与) 定制版 OEM Custom Installer CD ESXi 7.0 U3m Lenovo (联想) 定…

在linux系统上运行Stable Diffusion web UI

stable-diffusion-webui项目地址 该项目是一个针对Stable Diffusion模型的浏览器操作界面,基于Gradio。 环境: 在恒源云上租的服务器,操作系统:Ubuntu、显卡:A4000-16G。恒源云官网链接 项目的Readme.md让我们用web…

科二学习笔记

文章目录 一、侧方位停车进库:出库: 二、倒车入库右入库与右出库出库部分:入库部分第一种方法(网络版本):入库部分第二种方法: 左入库与左出库左出库左入库 三、直角转弯(右直角) 练车时间 am 7 ~ 11 pm15 ~ 18 一、侧…

中国做SaaS为什么这么难?这里解释了深层次的原因!

01 SaaS是什么? SaaS就是共享单车 SaaS,翻译过来是“软件即服务”。在大家的认知中,软件属于“产品”,SaaS也确实是一种产品,那为什么几乎所有的SaaS厂商却都在强调“服务”这个概念呢? 产品VS服务&…

JavaWeb笔记(三)

Java与数据库 通过Java如何去使用数据库来帮助我们存储数据呢,这将是本章节讨论的重点。 初识JDBC JDBC是什么?JDBC英文名为:Java Data Base Connectivity(Java数据库连接),官方解释它是Java编程语言和广泛的数据库之间独立于数…

Pod 生命周期

目录 1,概述 Pod Phase阶段 2,创建和终止 pod的创建过程 pod的终止过程 3 Init容器 容器探针 容器回调 1,概述 我们一般将pod对象从创建至终止的这段时间范围内称为pod生命周期,它主要包含下面过程: 1.pod创建过…

信捷PLC使用串口485与超声波传感器通讯实例

使用信捷的XL3-32PLC,XL3支持串口通讯。用来与国产超声波检测传感器进行通讯。 首先是硬件接线: 将传感器的485口A、B与PLC的485口A、B分别连接好。 接线完成后,可以在电脑端先使用串口调试助手测试一下,数据的发送与接受是否正常。 另外,PLC的串口数据发送与接收,…

selenium基础定位元素入门

参考文章链接 什么是selenium? selenium是一个web自动化测试工具selenium环境部署安装 首先需要安装python环境 1、安装在cmd 直接输入 :pip install selenium2、卸载:在cmd输入:pip uninstall selenium3、查看:pip…

直播产品行业解决方案|商业化变现模型

摘要 在过去几年的直播行业创业风口期中,直播的用户关注度疯狂增长,但用户质量却参差不齐。随着用户新鲜感一过,流失率变得相当严重,各大平台都在竭尽全力防御。然而,留住“凑热闹”的非直播受众用户并不是最关键的问…

python高级-线程和进程相关

这里前面的linux基础就不补充了,只写一些比较高级的 目录 一、文件查找 1.按照名字查找 2.通配符 3.文件大小查找 二、压缩和打包 1.zip 2.gzip 3.tar命令 三、权限管理 四、多进程 1.创建进程 2.获取进程id 3.进程传参 4.进程不共享全局变量 5.守护…

系统重构实施,百亿级核心交易如何保证准确性?

重构:又喜欢又害怕 一个企业级的应用,即使是诸葛亮级别的设计人员,最初的考虑都不可能尽善尽美,会存在设计不够或者设计过头的情况。加上业务的发展可能与当初的推想不一致,这样就使得上线初期稳稳当当的一个系统&…

【MySQL】数据库中这么多数据类型你真的了解吗?一文看懂不同数据类型有何区别

【MySQL】数据类型 一、常见数据类型二、数值类型2.1 整型2.1.1 小结 2.2 bit类型2.3 float 类型2.4 decimal类型---精度更高 三、字符串类型3.1 char---固定字符串3.2 varchar---变长字符串3.2.1 char和varchar区别 3.3 日期和时间类型3.4 enum和set3.4.1 set查询----find_in_…

入门编程其实也简单

随着信息技术的快速发展,编程已经成为一个越来越重要的技能。那么,我们该如何入门编程呢? 编程是指使用计算机语言编写计算机程序的过程。计算机程序是一系列指令的集合,这些指令告诉计算机要执行的操作。编程的目的是创建计算机…

2023-6-13-第四式建造者模式

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

Openharmony使用hdc提效

告别串口卡顿调试🐸hdc增效大法🐸,工作环境主要是Linux,所以主要是介绍Linux环境下使用喔~ 文章目录 HDC1.1 简单介绍1.2 搭建环境1.2.1 设备机1.2.2 pc机1.2.3 操作 AuthorDateVersionDescription陈梓归2023-06-13V1.0第一个版本…

详解模板模式

目录 1.概述 2.实际业务场景示例 2.1.需求和实现思路 2.1.完整代码实现 1.概述 模板模式是一种常用的设计模式,它定义了一个操作中的算法的骨架,将某些步骤延迟到子类中实现。模板模式使得子类可以在不改变算法结构的情况下重新定义算法中的某些步骤…

【ubuntu】vscode上jupter notebook的使用

1.安装vscode 2.安装python环境和插件 系统要有Python环境:conda install python 或者 pip都可以 在vsode里安装如下插件 3.安装jupter conda install jupyter notebook 安装完之后试着打开 输入jupyter note 打开才行,如果安装失败,就…

【IoT】降低硬件创业风险的 6 个小建议

目录 第一个是聘用多名独立的工程师 第二个是从小批量开始做 第三个是使用电子模块 第四个是充分利用制造商资源 第五个是在构建产品之前先建立客户群体 第六个是预售你的产品 无论你提前做了多么充分的准备。 将全新的硬件产品推向市场就一定会引入风险。 这里的全新是…

AntDB 企业增强特性介绍——读写分离

面对日益增加的系统访问量,读写分离可以充分利用备机资源,有效地提升数据库的吞吐量。过去常用的手段是通过应用层来控制数据库的读写流量。 AntDB 通过在 Coordinator 组件的 SQL 解析路由层增加对读写流量的精确访问控制且对应用透明,做到…