• 0
  • 0
分享
  • 嵌入式软件的自动化测试框架、测试流程与功能研究分析——软件测试圈
  • 北极 2022-11-30 13:36:59 字数 2185 阅读 3006 收藏 0

引言

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

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

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

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

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

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

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

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

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

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

1.png

(1)脚本驱动器

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

(2)接口映射表

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

(3)数据驱动器

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

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

(4)支持函数库

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

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

3.1 测试框架设计

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

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

2.png

3.2 测试流程设计

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

3.png

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

3.3 功能设计

3.3.1 管理工具功能

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

4.png

(1)脚本配置管理模块

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

(2)插桩模块

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

(3)日志分析生成模块

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

(4)数据通信模块

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

3.3.2 测试代理功能

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

5.png

(1)测试驱动模块

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

(2)数据驱动模块

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

(3)数据通信模块

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


作者:软件测试小dao

原文链接:https://blog.csdn.net/m0_57162664/article/details/117076996

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 利用空闲之余,写了第一个接口自动化测试demo, 通过读取execl中的接口测试用例,接口自动执行。(这里跟很多网上的接口自动化有点不同的是:无需再写代码,只需要从execl中增加用例,就可执行)。这是execl的模板:这个模板可以很好的管理项目的各个模块,看起来也是简洁,也是颇为喜欢的~~主要就是写了这几个类,完成了接口自动化的第一步:在尝试写这个demo时,最大的问题困扰的我是:每个请求的参数方式(请求参数和body参数)不一致,个数不一致。怎样能用简洁的方式实现? 最终解决的办法就是:在execl中增加参数类型判断:paramType, 如果是params,封装一个将json格式的字符串...
            0 1 2844
            分享
          •   黑盒测试用例的设计方法包括边界值法,等价类法,正交组合对法(OrthogonalPairs)和因果图法(CauseEfffect,类似于决策树软件测试法)等等,其中组合对法和因果图法由于涉及到输入条件与输出结果直接的组合与逻辑关系比较复杂,不适合用人工的方式计算。  BenderRBT是基于需求的功能测试用例设计工具,具有组合对法(OrthogonalPairs)和因果图(CauseEffect)两种功能模块,通过对被测应用的需求进一步清晰化整理,进而设计出最小数目的测试用例实现最大的功能覆盖率。  BenderRBT深入地分析应用的需求规格说明找出其中存在的错误和逻辑冲突,软件开发团队使...
            0 0 4063
            分享
          • 1、JMeter简介JMeter是Apache组织开发的基于Java的压力测试工具。具有开源免费、框架灵活、多平台支持等优势。除了压力测试外,JMeter在接口测试方面也有广泛的应用。2、JMeter安装访问JMeter官网:https://jmeter.apache.org/download_jmeter.cgi,点击下载后解压缩,依次打开\apache-jmeter-4.0\JMeter\bin,运行jmeterw.cmd即可。(建议在桌面创建jmeterw.cmd的快捷方式,方便快速打开)3、使用JMeter完成单个接口测试3.1 添加线程组在“测试计划”上点击鼠标右键-->添加-...
            12 12 3602
            分享
          • 读者提问:明天项目要上线,开发任务还没提测,甚至还没开始联调,作为测试心里特别慌,我该怎么办 ?问题背景:我们产品直接拍板了,跟客户做了保证,xx时候一定可以完成上线。但两个业务并行,时间很紧张,开发分身乏术。开发人均要同时支撑两个业务,所以出现了明天要上线的任务,到今天下班时还没提测,开发评估要明天下午才能联调完。阿常回答:明天要上线的任务,明天下午才能提测,作为测试肯定很慌。客观既定事实没法改变,我们只能寻找问题解决方案,推进项目可交付质量。采取措施:1、和产品对齐可交付质量的最低标准。2、用例划分优先级,先保证基本功能。3、提前准备好测试环境,清理脏数据。今后改进:1、产研测一起商定项目...
            0 0 1218
            分享
          •   使用背景概述:  在客户端项目中,测试同学经常需要使用VMWare虚拟机进行兼容性测试。随着操作系统从Win7到Win10的普及,笔者发现Win10自带的虚拟机Hyper-V就很好用。比如需要分别测试Win7、Win8、Win10等系统上的客户端系统,在虚拟机Hyper-V单独安装这些系统,这样既不影响本机系统软件使用,又可以完成兼容性测试工作。  对于从事Selenium分布式测试的同学也可以参考下:  1、Hyper-V安装系统要求  根据官网提示:  1).Intel或者AMD64位处理器  2).Windows Server 2008 R2及以上(服务器操作系统);  Window...
            11 11 3050
            分享
      • 51testing软件测试圈微信