0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 来源:郭婷 作者:电子设计 2018-12-04 08:29 次阅读

引言

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

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)数据通信模块

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

4.结束语

软件测试是对软件质量进行评估的重要方法,自动化测试技术可以降低软件测试成本,缩短软件测试时间.特别是对于测试环境更加复杂的嵌入式软件而言,自动化测试具有更加重要的意义.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    52

    文章

    8234

    浏览量

    146319
  • 嵌入式
    +关注

    关注

    5082

    文章

    19117

    浏览量

    304988
  • 自动化
    +关注

    关注

    29

    文章

    5566

    浏览量

    79260
收藏 人收藏

    评论

    相关推荐

    分享一种嵌入式系统自动化测试的详细方案

    嵌入式系统由于具有多种输入和输出接口,涉及到各种复杂时序,测试难度比较大,一般的测试工具很难对嵌入式系统进行自动化
    的头像 发表于 12-05 13:43 2803次阅读

    如何搭建嵌入式C语言单元测试自动化框架

    关于嵌入式C语言单元测试自动化框架的搭建思路
    发表于 12-15 07:35

    介绍一套完整的针对嵌入式系统的自动化动态确认测试平台

    常用嵌入式系统软件仿真自动化黑盒测试平台 一、 ETest 简介 通用嵌入式系统测试平台(Emb
    发表于 12-17 06:58

    嵌入式软件自动化测试平台的相关资料推荐

    软件环境,从而实现嵌入式软件自动化测试,是嵌入式软件
    发表于 12-21 07:05

    AutoTCG嵌入式软件自动测试工具怎么样

    设计。AutoTCG和综合测试仪构成了完整的自动化测试工具套件,在嵌入式软件测试业务中使用该工具
    发表于 12-24 07:58

    技术分享|如何做嵌入式系统的自动化测试

    测系统进行全面的自动化测试,并很方便进行嵌入式系统的自动化的回归测试。下面是实验室环境下嵌入式
    发表于 09-07 16:31

    基于模块设计的嵌入式软件测试方法

    分析嵌入式软件的特点,综述传统的软件测试方法;针对嵌入式软件
    发表于 05-18 13:26 23次下载

    基于模块设计的嵌入式软件测试方法

    摘要:分析嵌入式软件的特点,综述传统的软件测试方法;针对嵌入式
    发表于 04-07 00:32 2045次阅读
    基于模块<b class='flag-5'>化</b>设计的<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b><b class='flag-5'>测试</b>方法

    嵌入式Linux软件测试框架研究

    嵌入式Linux 软件是最难测试的一类软件。在测试过程中通过使用有效的测试
    发表于 06-07 17:14 29次下载

    基于Web的自动化测试框架研究

    根据web系统测试的特点,为提高软件测试自动化脚本的可重用性,结合在实际项目中软件自动化
    发表于 11-07 15:58 0次下载
    基于Web的<b class='flag-5'>自动化</b><b class='flag-5'>测试</b><b class='flag-5'>框架</b>的<b class='flag-5'>研究</b>

    Windows移动嵌入式项目中的自动化加速测试

    在Windows移动便携数据终端(PDT)设备上,是否有方法可以执行自动化嵌入式软件测试
    发表于 05-23 11:00 995次阅读

    嵌入式软件测试研究意义,嵌入式软件测试研究

    。大多数软件测试方法都可以直接或间接地用于嵌入式软件测试,但是由于操作系统的实时和嵌入式特性,
    发表于 10-20 17:20 17次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b><b class='flag-5'>测试</b><b class='flag-5'>研究</b>意义,<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b><b class='flag-5'>测试</b>的<b class='flag-5'>研究</b>

    嵌入式软件测试

    **嵌入式软件测试工程师#有合适的可以留言#**科华恒盛职位介绍:嵌入式软件测试工作职责:1、负
    发表于 10-21 10:06 12次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b><b class='flag-5'>测试</b>

    自动化测试框架unittes详解

    测试框架,不妨“软为硬用”。这里就基于python的自动化测试框架unittest来实现一个简单的自动
    的头像 发表于 05-20 14:47 2930次阅读

    什么是自动化测试框架

    自动化测试框架,即是应用于自动化测试所用的框架。按照框架
    发表于 04-18 14:44 913次阅读