一种基于RobotFramework的嵌入式软件自动化测试框架

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0 引言

通过工具(程序)的方式来代替或辅助手工测试的行为称为自动化测试。自动化测试一般包括测试过程自动化和测试结果分析自动化,自动化测试能够带来的好处包括:

对程序的新版本运行已有的测试(回归测试),能大大降低回归测试的开销;可以运行更多更频繁的测试;可以执行一些手动测试特别费时费力,甚至无法达到测试目的的项目。比如压力测试,大数据或者大量重复数据测试,必须有自动化工具的支持;使测试具有一致性和可重复性;可以增加软件信任度;可以更快地将软件推向市场。

并非所有的软件产品都适用于自动化测试,自动化测试适用的场景为:

(1)软件需求及功能相对稳定

测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,如果脚本维护所花费的成本超过了利用其节省的测试成本,那么在不稳定阶段不适于自动化测试。

(2)项目周期足够长

由于自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成。这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程。

(3)自动化测试脚本可重复使用

如果投入大量资源开发了自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自

动化测试不能真正产生效益。

目前的测试框架及工具主要针对C/S 架构或B/S 架构的应用,由于嵌入式软件测试目标及运行方式千差万别,没有专门用于嵌入式软件测试的通用测试工具。为了解决嵌入式软件测试过程中自动化测试问题,本文在介绍了已有的测试框架和工具的基础上,提出了一种适合于嵌入式软件的嵌入式软件自动化测试框架,并着重描述了测试框架下的功能划分和测试流程。

1 自动化测试框架与工具

常见测试框架及工具包括:QTP,Rational Robot,Phoenix Framework,selenium,watir,Robot Framework 等。

自动化测试框架与工具主要分为两类:一种是可提供可重用的基础自动化测试模块,如: selenium、watir 等,它们主要提供最基础的自动化测试功能,比如打开一个程序,模拟鼠标和键盘来点击或操作被测试对象,最后验证被测对象的属性以判断程序的正确性;另外一种是可以提供自动化测试执行和管理功能的架构模块,如:Phoenix Framework,Robot Framework 等,它们本身不提供基础的自动化测试支持,只是用于组织、管理和执行那些独立的自动化测试用例,测试完成后统计测试结果,通常这类框架一般都会集成一个基础自动化测试模块。

2 基于RobotFramework 的嵌入式自动化框架

2.1 总体框架

针对嵌入式软件自动测试领域,利用已有的测试框架完成主机端的测试管理工作,如果测试脚本管理,测试报告的生成等;目标机端完成实际测试执行,主机端与目标机端之间的通信与测

Key Words :automated testing; RobotFramework; embedded software testing

74

询命令,定义测试开始和测试结束的交互信息约定、测试用例结果数据表示格式等规则信息。

(1) 执行测试时,首先读取测试描述文件,根据描述文件,

检查测试用例配置的完整性。检查项包括:测试用例在映像文件是否存在,是否完整。

(2) 测试启动后,测试控制层应该检查与目标机端口的连接

图3 测试库测试用例的执行过程

(3) 在确认目标机端可用以后,读取测试计划中配置的测试用例映像,向目标机发生加载、运行命令。

(4) 目标机端,完成映像加载后,运行进入测试程序的入口,开始运行。运行开始时输出开始测试标识,运行结束后输出测试结束标识。运行过程信息及结果信息,可以通过串口终端、虚拟终端或主机文件系统保存到主机端。

(5) 主机端,等待获取当前测试用例的运行结束标志,在等待过程中,每间隔一段时间,可以查询一下目标机端的状态,防止测试用例运行死机,陷入永久等待的情况。同时主机端在日志文件中记录测试用例运行轨迹信息及主要操作步骤。

当获取到目标机端口发送过来的测试结束状态后,对测试结果进行分析,并向目标机端口发送重启命令,使目标机进行模块

重启,完成状态清理。

(6) 当前测试用例完成运行以后,返回当前测试用例的执行结果。

3 总结

本文给出了一种适合于嵌入式软件基于RobotFramework 的自动化测试框架,描述了测试框架的功能划分及自动化测试过程。针对项目周期长,需要经过多轮回归测试的复杂嵌入式系统软件,可以有效提升测试效率,降低测试过程中人的工作量,为嵌入式软件功能验证提供有效的测试手段。

参考文献

[1]李夏安,陈志泊.基于STAF 的软件自动化测试系

统的研究和实现[J].计算机应用,2009.03.

图2 测试库功能结构图

相关文档
最新文档