基于AutoVue的自动化测试框架设计与实现

时间:2022-03-25 03:30:39

基于AutoVue的自动化测试框架设计与实现

摘要:软件测试,特别是用户界面中的回归测试需要大量重复的手工劳动。AutoVue产品作为一款支持多种格式文件的软件,其测试用例具有特殊性。为了提高测试效率,提出一种基于SilkTest工具的自动化测试框架。在可行性分析的基础上,采用数据驱动和关键字驱动的混合模型设计,以XML文件存储测试信息,支持AutoVue产品的多个版本。从框架平台运行环境、框架测试流程、测试用时对比等方面进行了阐述。 框架具有可维护、用例运行执行范围选择方便的特点,对其它应用也有扩展性,大幅度提高了AutoVue产品的测试效率。

关键词:自动化测试框架;SilkTest工具;用户界面测试;AutoVue

DOIDOI:10.11907/rjdk.151171

中图分类号:TP319

文献标识码:A 文章编号:16727800(2015)006010704

基金项目基金项目:

作者简介作者简介:朱欣(1986-),女,江苏苏州人,硕士,苏州市职业大学信息中心助理工程师,研究方向为软件测试、数据分析。

0 引言

软件测试是软件开发过程中的重要环节。为了减少人力成本,自动化测试框架应运而生并日益受到重视。最早的录制回放模式由于会产生冗余代码,且脚本过度依赖软件界面而被淘汰。目前的自动化框架一般采用数据驱动模式[12]、关键字驱动模式[34]、混合模式等。文献[1]基于LIW的测试需求分析提出了一种数据驱动的分布式测试框架,并在此框架基础上设计了一套自动化测试系统(DMATS),实际应用证实了此框架的可行性。文献[2]给出了一种基于数据驱动的Web测试框架,并设计了基于XML语言的自动化测试脚本,但未从具体应用上证实此框架的优势。文献[3]将框架应用于Linux系统上,并以Gedit为测试应用,但没有在实际开发中应用。界面变动、框架如何维护等在文献中都未提及。文献[5]针对句柄识别界面的测试方法缺乏稳定性和通用性,通过引入可扩展标记语言(XML),提出了一种基于XML对UI控件识别并测试的改进方法,从而可以识别多语言应用。文献[5]的缺点在于:所有的控件信息都存于XML文件,而对于一个测试用例,往往包含多个步骤、多个界面,XML文件的信息量会很大,且文献对于测试结果的分析时间以及软件缺陷如何快速定位没有描述。该框架只针对产品的界面测试,并不针对AutoCAD应用的功能测试。本文提出了针对应用产品的功能测试(包括界面测试)框架。基于可行性分析,根据AutoVue产品特点,设计出一套基于SilkTest工具可复用、利于后期维护的自动化测试框架。该框架采用运行在线、分析结果离线的方式,减少了框架总体耗时,并在可维护性、灵活性等多方面体现出优越性。

1 自动化测试可行性分析

本自动化测试框架基于AutoVue产品,因而首先分析AutoVue产品特点。

1.1 AutoVue产品简介

AutoVue产品[6]是一款Oracle公司提供的可视化工具,提供2D、3D、EDA、Office等类型上百种文件格式的显示和转换。Oracle为客户提供两种不同的解决方案,分别为:Client Server和Desktop(在本文中简称CS和DD)。 DD版本是独立安装在客户端的Java应用,CS版本安装在服务器上,客户只需通过支持Java插件的浏览器即可访问。这两种解决方案,根据支持文件格式类型的不同分为AutoVue EMP、AutoVue EDA、AutoVue 3D、AutoVue 2D、AutoVue Office等多个版本,以对应支持不同类型的文件,满足不同客户的需求。AutoVue主要功能有:原始文件显示、文件格式转换、图像比较、标注、测量、查找等。

1.2 AutoVue测试用例特征

AutoVue产品用例主要分为格式用例和功能用例。以AutoVue20.2.2为例,需支持百种格式[7]文件,每种格式文件又支持多种版本,如Word格式就有Word2010、Word2007、Word的2003、Word2000等7种不同的Word版本。AutoCAD格式要测十几种不同的版本,各种格式有400余种。而每种格式、每种版本的文件至少需要5个样本文件对其进行测试,才能保证测试覆盖率,所以仅格式的测试用例就达2 000余条,且每次测试均需与之前版本进行对比,测试用例量大、测试任务繁重。功能方面(如标注、测量、查找)的测试用例逻辑性较其它应用虽简单,但对于不同格式,界面和功能都有细微差别,需选用特定的样本文件来测试其某项功能。

1.3 可行性分析

手工测试中,每一个小版本的推出,或者是一个补丁的产生都需要进行回归测试,测试量大且繁锁。基于此原因,必须设计出一套针对AutoVue应用特点的自动化框架,应用于回归测试,以减少人力成本、提高工作效率。需考虑框架的灵活性、可维护性,如运行测试用例的范围选择、AutoVue新版本推出对现有框架的影响等。

2 自动化框架设计

2.1 SilkTest工具介绍

SilkTest是Borland公司开发的一款领先的测试工具,支持Java、Web应用,在功能测试领域应用较多。SilkTest具有多种功能,如支持多种数据库访问、支持多种主流浏览器、支持多种脚本语言(Java、VB、C#)等。

2.2 混合自动化框架

本框架采用关键字驱动和数据驱动混合模型:①使用SilkTest工具建立AutoVue应用产品对象库,将测试对象名与界面元素名分离。一旦界面元素有改变,只需修改对象库中相应的元素,无需大规模涉及脚本;②脚本与数据分离。AutoVue产品的测试用例都包含一个或多个样本文件。本框架将所需要执行的样本文件都保存在.csv文件中;③测试描述与脚本实现分离,本框架将测试用例名存储在.csv文件中;④本框架不是单纯的关键字驱动,测试用例的步骤并不都呈现在.csv文件中。

以测试用例Compare_Exist为例,步骤如下:①打开AutoVue应用;②加载原始文件,点击“分析”“比较”;③在弹出的对框中选择比较的文件,查看比较结果。打开文件,在界面上的交互动作并没有以关键字的形式呈现在.csv文件中。由于AutoVue应用的逻辑性较简单,用例复杂度主要体现在样本格式文件的数量,所以只将数据文件名、执行脚本名、测试应用的版本存储在数据文件中,以减少测试用例的维护成本。

2.3 框架特点

2.3.1 多版本支持

本框架支持AutoVue的CS、DD版本,使用同一套Object对象,在AutoVue20.1、AutoVue 20.2.1、 AutoVue20.2.2等版本上都进行过试验,在回归测试中作用很好。

2.3.2 框架受界面变动影响小

被测试应用界面一旦有改动,只需修改对象库的文件,而无需一一修改用例脚本。

2.3.3 被测试运行用例执行范围选择方便

选择执行部分用例,将Master文件中对应用例的Test列改为Y或者N即可。选择执行部分格式的测试用例,将Master文件中对应用例的Formats列作相应修改即可。若需要增加或减少测试文件,只需修改用例对应测试文件的.csv文件即可。

2.4 测试框架平台运行环境

本框架的驱动脚本、测试脚本、对象库均存储在共享的Oracle数据库中,测试工具SilkTest安装在SilkTest客户端。外部数据如测试任务、测试文件以.csv,.xls格式存放在共享服务器中。结果处理程序存储在结果对比服务器中。用户客户端通过远程连接SilkTest客户端的方式启动自动化测试框架,并将运行所得的XML文件和对比截图存放在共享服务器中。具体构架如图1所示。

2.5 自动化测试框架流程

如图2所示,驱动文件控制整个框架流程,具体步骤如下:

(1)读取AutoMation_Task.csv文件,对应于不同的运行模式、版本,版本号会在SilkTest客户端上创建不同的文件夹来保存结果。对应于不同的应用类型CS和DD,创建不同的jVue.bat文件,以启动应用。图3为AutoMation_Task.csv在SilkTest工具中显示的内容。

(2)Master.csv文件包含了所有测试用例的数据,包含3列(测试用例名、是否测试、测试文件格式),图4为AutoMation_Task.csv在SilkTest工具中显示的部分数据。

对于每行数据,先读取Test列,如果列值为Yes,则执行此条用例,否则跳过此用例。

(3)对于执行用例,读取与该条测试用例相对应的数据文件。逐行读取,若该样本文件的格式属于Master文件中的格式之一,则执行包含该样本文件的用例,输出XML文件和截图,否则跳过此文件。图5为测试用例COMPARE_EXTENTS的测试数据文件内容,有原文件名、比较文件名、原文件格式、测试页4个参数。如读取第一行数据时,首先判断“Dwg”格式是否属于Master文件中COMPARE_EXTENTS行Formats列值之一。 对于不同测试用例的参数,文件名和原文件格式是两个必备参数,其它参数根据用例不同构造也有不同。

(4)在执行每一条测试用例时,都会产生一个XML文件和相对应的一个或多个截图。XML数据主要包括测试用例名、测试版本号、测试样本文件打开状态、打开时间、样本格式、截图路径、文件类型等信息。图6所示为在执行测试用例COMPARE_ALIGNSCALE时,测试样本文件为50015222.dgn时生成的XML文件内容。

(5)运行图像分析程序。根据XML文件和截图将Update模式和Verify模式的两个文件夹进行分析,根据同个脚本两种模式下的截图像素进行对比,得出对比结果。如图7所示,共两条用例,第一列为Update模式的结果截图,第二列为Verify模式的结果截图,第三列为对比结果图,两者对比相同,标记为PASS,否则标记为FAIL,并显示出Update模式和Verify模式的不同点。

2.6 结果分析

2.6.1 运行时间对比

在自动化框架测试阶段,定义79条测试脚本,覆盖了2D、3D、EDA、EMP应用中90%最常用的功能,每个脚本取10个样本文件,共790条测试样例。

人工测试与自动化测试耗时对比,如表1所示。 运用自动化测试框架进行回归测试很大程度上提高了效率。特别是在进行手动测试时,需要同时进行两个版本比较,每次用例需执行两次。 而自动化测试时,对应的Update模式只需运行一次,相对应的截图和XML文件就会保存在服务器中。在第二次测试时,只需运行一次Verify模式。即使Update模式不存在,由于多个SilkTest客户端可同时运行,所花费的时间也不需要2倍的时间。由于自动化测试框架运行在客户端,不影响测试人员工作,所以不占用测试人员的实际工作时间。此外由于该框架将截图存放在服务器端,避免了测试人员在提交软件缺陷时需要重新截图的工作量。

2.6.2 注意事项

此框架在设计调试中发现的问题及注意事项:①截图采用png格式,以减少存储空间;②远程到SilkTest客户端时,设置远程连接属性时间的最大值为24小时,以防止运行中途远程连接断开造成截图不清的情况发生;③样本文件选取中等大小,用AutoVue应用打开时间1分钟以内的文件为宜,容量过大的文件不适合做回归测试;④为保持程序稳定,每执行一个测试脚本(约5至20条测试用例),重新关闭并启动AutoVue应用。

3 框架扩展

AutoVue产品浏览各种不同格式的文件,测试用例相对特殊,包含数量巨大、格式多种的测试文件,多用于回归测试。对于其它普通的Web应用,对该框架作适度的修改也可:①测试工具支持。SilkTest工具支持Web应用,并支持多种浏览器测试;②采用纯关键字驱动方式,将用例的每一动作都看作关键字。如Web应用常用的“登陆”、“注销”等界面操作。对于关键性的步骤进行多次截图,进行图像比较,达到测试功能缺陷的目的。

4 结语

自动化测试框架在AutoVue产品开发中效果良好,大幅度减少了测试人员的工作量。随着敏捷开发模式在软件团队中的大量运用,开发敏捷性的自动化框架,以及将自动化测试框架融合进敏捷开发模式是下一步的工作重点及研究方向。

参考文献:

[1]YIN JIE, ZHANG YANG, YU DAN, et al.An automatic testing framework applied on LIW and its implementation[C]. Proceedings of 2011 13th IEEE Joint International Computer Science and Information Technology Conference(JICSIT 2011),2011.

[2]冯振华,高菊,曾红卫.Web 应用自动化测试的研究[J]. 计算机工程与设计, 2010,31(1):175178.

[3]接卉, 兰雨晴, 骆沛.一种关键字驱动的自动化测试框架[J].计算机应用研究, 2009,26(3):927929.

[4]王军,孟凡鹏.基于关键字驱动的自动化测试研究与实现[J]. 计算机工程与设计, 2012,33(9):36523656.

[5]何浩,程春玲,张征宇,等.基于SilkTest和XML的通用高效的用户界面测试方法[J].计算机应用,2013,33(1):258261.

[6]S N. AutoVue enterprise visualization providing a foundation for viewing, markup and realtime collaboration[EB/OL].[20141228]. .

[7]S N.Oracle AutoVue 20.2.2 supported file format[EB/OL].[20141228]. http:///us/products/applications/autoVue/autovuesupportedfileformats065285.pdf ssSourceSiteId=otnen.

英文摘要Abstract:Software testing, especially GUI testing in the regression period cost duplicate manual labor. AutoVue, as a multiple file format supported product, the testing cases are special. In order to improve testing efficiency, an automated testing framework using SilkTest tool is proposed. The framework use hybrid model which is based on data driven model and keywords driven model. It use XML file to restore testing info and support various version of AutoVue product. The running environment, running process and time effort of the framework are illustrated. The framework is easily maintainable, flexible and extensible. It proves that the framework can improve product testing efficiency to a large extent.

英文关键词Key Words: Automated Testing Framework; SilkTest Tool; GUI Testing; AutoVue

上一篇:庆丰农场玉米全程生产机械化技术 下一篇:基于能力本位教育理念的信息管理专业应用型人...