嵌入式软件自动化测试平台构架设计

来源 :电子世界 | 被引量 : 0次 | 上传用户:sgrwflh
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】与通用PC应用软件相比,嵌入式软件测试更加复杂,为此对嵌入式软件自动化测试平台的研究对于嵌入式软件的发展非常重要的意义。本文主要在对嵌入式软件自动化测试平台进行简单分析的基础上,对嵌入式软件自动化平台的整体框架、测试流程以及测试平台的具体功能进行了研究。
  【关键词】嵌入式软件;自动化测试;平台框架
  进入二十一世纪之后,硬件元器件得到了飞速发展,从而也是的嵌入式软件的功能更加强大和复杂。随之而来的也是嵌入式软件测试工作的加重,传统的软件测试技术已经难以满足嵌入式软件越来越复杂的需求。而目前,市场上已经有较多的传统软件自动化测试技术,如何在这些技术的基础上进行改进,从而能够适应嵌入式软件环境,从而实现嵌入式软件的自动化测试,是嵌入式软件发展的重要方向。
  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.结束语
  软件测试是对软件质量进行评估的重要方法,自动化测试技术可以降低软件测试成本,缩短软件测试时间。特别是对于测试环境更加复杂的嵌入式软件而言,自动化测试具有更加重要的意义。
  参考文献
  [1]邓勇,曾建光.嵌入式软件系统及其自动测试技术的发展与现状[J].科技咨询导报,2007,21:5-6.
  [2]凌永发,张云生,郭秀萍.软件测试自动化中的脚本技术[J].云南民族学院学报(自然科学版),2002,11(1):544-548.
  [3]郑世伟.嵌入式软件的测试方法和工具[J].单片机与嵌入式系统应用,2001,4:26-28..
  [4]崔小乐,刘斌,钟德明,等.实时嵌入式软件仿真测试平台的体系结构设计[J].测控技术,2003,22(7):38-40.
  作者简介:任志伟,中国航空工业洛阳电光设备研究所工程师,研究方向:嵌入式系统软件开发,软件测试。
其他文献
<正>~~
期刊
为进一步推动教育教学改革,实施好新课程,不断提高教育教学质量,近两年来新郑市大力推广土生土长的课堂教学模式即“导学法”。 In order to further promote the reform of
随着一轮轮冷空气来袭,在连续降温之后,北国不少地方已是银装素裹,而岭南依然是万绿常青。岭南就真没秋冬景色吗?其实,在南海之滨,我们也能看到北国常见的芦苇荡,而在省内最北部的南
在物流行业中,仓储系统是其重要的一个环节,环境温度需要时时监测,以保证货物的质量,由于物流仓储使用的货架体积大,存储与管理的货物批量大、品种繁多,使用常规的人工监测方法耗时耗力,利用1-wire总线技术设计一种长线并行测温系统,进行集中式实时温度监测,精确到各种货物的具体储存点,减少人力资源投入,提高存储质量。1-wire总线利用一根数据线同时完成低速数据、信号的传输和电源供给,在实际应用中也可以
近年来,静脉留置针在临床的应用越来越广泛,尤其是在抢救危重病人、静脉输注对血管有刺激性药物和静脉营养等方面发挥了重要作用。静脉留置针不受体位及活动影响,只要病情需要,可
网页导航菜单是一个网站的主线,是指引和方便浏览者访问所需内容的快速通道。本文介绍了Dreamweaver CS3中使用“Spry菜单栏”控件创建横向或纵向的网页下拉或弹出菜单,通过“