APP下载

自动化测试框架技术及应用

2016-11-17邓璐娟李金萌董东晓

计算机测量与控制 2016年9期
关键词:关键字测试用例脚本

邓璐娟,李金萌,董东晓

(郑州轻工业学院 计算机与通信工程学院,郑州 450001)



自动化测试框架技术及应用

邓璐娟,李金萌,董东晓

(郑州轻工业学院 计算机与通信工程学院,郑州 450001)

自动化测试技术是软件测试未来的发展方向,自动化测试过程中会遇到测试脚本维护困难、脚本维护工作量大、重用性差、测试效率低的问题;怎样引入自动化测试框架技术解决上面的问题是测试工程师一直在探讨和研究的主流问题;探讨研究了在自动化测试框架技术应用过程中遇到的下列问题:脚本库中测试脚本存放技术;测试用例设计技术;测试数据的管理和分类技术;对象库共享技术等;初步达到了以下结果:提高了测试代码的可重用性和可维护性,测试执行更有效,从而降低了测试成本;最后使用了协同办公平台实例,从而证明了基于QTP的协同办公平台的自动化测试框架可以降低多余的代码量,加快代码生成速度,缩小测试周期等特点,从而提高代码的利用率和可维护性。

软件测试;自动化测试;自动化测试框架

0 引言

软件测试过程中,总是遇到测试成本高、执行繁琐、效率低,不能满足软件产品迭代研发的要求。解决办法有1)引入自动化测试。减少手工测试的重复劳动工作量,可以在特定的时间里不断地提高测试效率。2)建立自动化测试框架。提高脚本的可重复性,从而减少脚本维护工作量。

自动化测试技术主要包括录制/回放技术、脚本技术、数据驱动技术和关键字驱动技术等[1-4]。在自动化测试技术中,录制/回放技术是最基础和最基本的,目前的负载测试中大部分都是采用该技术进行测试的。脚本技术不可缺少的部分是脚本的共享。数据驱动技术可以将测试数据和脚本分开存储,从而提高了脚本的利用率和维护性,却因为页面的改变而受到不同程序的变化。在关键字驱动技术当中使用到的关键字主要是:被操作对象(Item)、操作(Operation)和值(Value),对关键字进行设置,从而可以通过关键字进行自动化测试。

1 自动化测试框架及原理

1.1 自动化测试框架

常用的自动化测试框架包括数据驱动的测试框架(Data-driven testing)、关键字驱动的测试框架(Keyword- driven testing) 、模块驱动的测试框架(Module-driven testing)、混合型测试框架(Hybrid testing)。不同的测试框架有其各自的特点和相应的工具支持[5-9]。

1)使用数据驱动的测试框架主要采用模型化设计思想,从而减少了多余的测试脚本,降低生成和维护测试脚本的费用;在测试的过程中,可以输入相应的数据验证其正确性;将生成的预期结果和测试脚本单独存储,将预期结果存储在单独的数据文件当中,这样测试人员可以更加方便地进行相应的增加、删除和维护;在测试的过程中,一边测试一边得到测试结果,在输入数据的过程中生成相应的测试结果,从而减少了手工测试的过程。数据驱动的测试框架支持工具有Functional Tester、WebKing、Rational Robot、Winrunner、QTP等。

2)使用关键字驱动的测试框架主要是可以实现脚本、数据和业务三者之间真正地分离,使用关键字形式把测试的整个流程存放到相应的数据文件当中;脚本的获取根据功能的需要进行设计,提高了其扩展性;关键字的设计采用了分解的方式,可以将其移到其他的数据库和系统当中。关键字驱动的测试框架支持工具有SAFS、EMOS Framework、SDT、TestFrame、TestQuest Pro、QuickTest Professional(QTP)等。

3)模块驱动的测试框架采用的是抽象和封装,在对框架进行设计的过程中,可以无需关心一些详细的应用和细节,在整个框架进行设计的过程中提出相应的接口来对脚本的详细过程进行保密,从而避免了测试脚本因为其他代码的改变受到相应的影响。模块驱动的测试框架支持工具主要有QTP。

4)混合型测试框架是集合数据驱动和关键字驱动测试框架这两种的优点而生成的一种自动化测试框架[10-12]。因为其具有数据和关键字驱动测试框架两种类型的优点,目前,被很多人使用。其支持工具主要有QTP。

因此,本文采用的是混合型测试框架,选择现在最流行的测试工具QTP支撑自动化测试。混合型测试框架将所有的数据和用例都存储在测试数据库当中,脚本和测试版本都存储在脚本库当中,常用函数和通用函数存放在函数库中,在函数库中加入了历史库,存放已经使用过的函数,更加有利于方便共享,而且还可以自动生成比较详细的测试报告。

1.2 系统结构及原理

混合型自动测试框架主要有以下几个部分组成,分别是脚本库、对象库、测试数据库、函数库、驱动层、测试报告、日志、配置文件、测试工具QTP与被测程序等,自动测试框架体系,如图1。

图1 自动测试框架体系

1.2.1 脚本库的自动化测试框架

脚本库用来存放编辑好的自动化测试脚本,脚本库主要分为脚本执行库和脚本版本库。QTP可直接执行脚本库中的脚本,利用QTP中的专家视图对脚本完善和环境设置。执行的测试脚本中的Action可以共享和重复使用的;简单明了,共享脚本降低了测试的成本;减少了开发时间。

在测试脚本开发时采用VBScript作为开发语言,可以提高测试效率。采用的技术是数据和关键字两者相结合的测试技术。前者可以提高测试对象的变更能力、脚本的灵活性和覆盖面。而后者可以将脚本、数据、业务三者之间分开,降低耦合性,从而提高灵活性。脚本版本库是存放更新发布的脚本,测试版本随着系统的不断变化而更新,在开发流程中对脚本版本进行管理和维护,以提高脚本的有效性。版本的管理使用SVN(Subversion),每次版本的定义按照版本管理的规则执行。

1.2.2 对象库的自动化测试框架

对象库中主要存放的是在测试过程当中所有的对象。对象库由描述性和共享性对象库两者组成,在共享对象库当中,需要创建一个可以进行共享的公用对象库,共享对象文件是以.tsr的格式存放在共享对象库中,可以让脚本的测试人员和脚本的开发人员进行调用,但只能调用却没有权限进行修改。在QTP中,我们对一个功能点进行测试,测试之后把对象库中的对象以.tsr的格式进行导出,进行共享,导入共享的.tsr文件(导入共享文件的步骤是在Resource/Associate- Repositories中关联对应的对象库)后就可以执行调用的相关对象。

1.2.3 测试数据库

在测试数据库当中,主要是由数据与用例库两者组成。对于测试用例的设计主要使用模板形式,把编写规范化的测试用例存储在Excel表格中,测试用例的模板中主要采用的字段为测试功能模块(TestModel)、测试用例编号(Test_ID)、测试用例名字(Test_Name)、测试步骤(Test_Step)、描述性信息(Test_Description)、测试数据(Test_Data)、检查点(Test_CheckPoint)、预期结果(Test_Expectation)、测试结果(Test_Result)。测试数据的管理利用Excel报表的功能对数据进行管理和分类,如果需要查看相应的数据,可以根据与测试用例相关的编号进行查询,这样可以保证测试的数据和测试用例的一致性。

1.2.4 函数库

函数库主要是为测试脚本提供接口函数,主要分为常用和通用函数。常用函数是运行测试脚本时调用较频繁的函数,例如,数据库访问,文件打开等等。通用函数是一些通用的自定义函数,能提供给测试脚本进行使用。

在函数库中加入历史库,每次使用过的函数都放入里面,方便下次使用和共享该函数,提高效率。

1.2.5 驱动模块

驱动模块是自动化测试框架中不可缺少与重要的部分。主要是由脚本、数据、测试执行与测试用例驱动器四部分组成。数据驱动器是把所有的测试数据用Excel格式进行统一的保存,该表格中的权限进行设置,只能供其他人调用,但没有权限进行修改。第三种主要是通过对用例的分析,经过分析结果来对脚本进行调用和使用。第四种主要是通过对测试用例当中的数据进行分析用于解析测试用例中数据文件,经过分析结果来对相应的数据和脚本进行使用。

1.2.6 配置文件

配置文件主要是由QTP中的一些信息,例如,初始化设置,操作系统,测试数据与测试用例存放路径等等,以XML 形式存储相关配置信息。

2 自动化测试框架技术实现

2.1 数据和脚本分离

采用VBScript脚本开发技术,用Excel对数据进行保存。在QC中,可以对测试数据、测试用例和测试脚本进行管理,并分开保存。

2.2 脚本的复用

在测试框架中,Action的复用方式,主要采用的方法,在选择“Reusable action”,只有选择了才能对Action进行复用,如图2。

可以把业务功能中通用的部分设置为可循环的Action脚本,这样,脚本的复用率大大提高。

图2 脚本复用设置

2.3 资源共享

建立对象库的方法:1)通过QTP对被协同办公平台进行录制;2)描述性编程。以上两种方法,我们采用的是第一种通过自动化测试工具QTP对其进行录制,对象库可以进行共享,供测试人员和开发人员调用,录制的对象库,从而可以实现对象库的共享。如图3所示。

图3 对象仓库

将自动化测试工具(QTP)连接测试管理平台(QC)后可同时为开发团队和测试团队提供资源的共享,例如数据、脚本、测试用例等方面。连接步骤:1)输入测试管理服务器地址;2)确认用户名和密码。

QC是目前使用频繁的一款测试管理工具,主要是用来管理测试流程、保存测试用例、测试执行、记录bug等。在自动化测试框架当中,为测试人员提供相应接口,测试人员需要在接口中输入登录QC的相关信息和QTP的绝对路径,连接成功后可自动地把QTP测试的脚本放到QC上面。

其它的自动化测试管理平台资源也可共享。

3 实际应用与分析

协同办公平台中主要有企业信息、部门事务、个人办公、协同工作、文化长廊、人事、资源中心、实用工具、系统设置等功能,对协同办公系统中这些功能进行自动化测试,如果假设重复执行的测试用例是2次与测试范围一致,我们得到了以下基于QTP的协同办公平台的自动化测试框架测试、简单自动化测试和手工测试的比较结果,如表1所示。

从表1中的数据可知,使用本框架进行自动化测试比手工测试节省30%左右的时间,比简单的自动化测试节省18%左右的时间,当测试用例执行次数越来越多时,节省的时间就会越来越多。由此可见,基于QTP的办公系统的自动化测试框架可以节省办公系统的测试时间,把节省的时间可以运用到更复杂的测试和必须使用手工测试上面,同时,基于QTP的协同办公平台的自动化测试框架也可以减少20%~30%脚本编写工作,从而降低了后期维护的难度。

表1 基于QTP的自动化测试、简单自动化测试和手工测试的比较

4 结语

本文主要对混合型自动化测试框架进行了应用研究,提出了自动化测试框架体系,分别由脚本库、对象库、测试数据库、函数库、驱动模块、配置文件、日志与测试报告等几部分组成。协同办公平台中的实际测试应用证明:基于QTP的协同办公平台的自动测试框架可以降低多余的代码量,加快代码生成的速度,缩小测试周期等特点,从而提高代码的利用率和可维护性。同时,把该自动化测试框架使用到其他相同类型或者相近类型的项目当中,也能减少大量的测试费用。

[1] Kao C H, Chi P H, Lee Y H. Automatic Testing Framework for Virtualization Environment[A]. Software Reliability Engineering Workshops (ISSREW), 2014 IEEE International Symposium on[C]. IEEE, 2014:134-135.

[2] 俞戴龙. QTP自动化测试框架的企业级应用[D]. 上海:复旦大学, 2010.

[3] 王 敏, 王智超, 余 杨. 基于QTP的数据库系统测试框架[J]. 计算机与数字工程, 2014, 42:117-121.

[4] Guo S. Research on Automatic Testing Framework[J]. Applied Mechanics & Materials, 2014, 635-637:1594-1598.

[5] Xiang Yun, Wen Jing. Automatic testing framework for Internet applications[A]. Communication Software and Networks (ICCSN), 2011 IEEE 3rd International Conference on[C]. IEEE, 2011:35-37.

[6] 赵建平, 刘晓阳, 赵建辉,等. 一种轻量级软件自动化测试框架[J]. 火力与指挥控制, 2014(7):179-183.

[7] 姚 杰, 程光钧, 李 浩. 基于数据驱动自动化测试框架研究和实现[J]. 工业控制计算机,2013,26:67-69.

[8] 束 进. 基于QTP的高速公路收费软件自动测试框架[J]. 上海船舶运输科学研究所学报, 2014, 37:56-60.

[9] 黄文高.QTP自动化测试与框架模型设计[M]. 北京:机械工业出版社, 2008.

[10] 田艳琴.QTP从实践到精通[M]. 北京:电子工业出版社, 2010.

[11] 刘 霞. 基于QTP的GUI数据驱动自动化测试框架[D]. 上海:复旦大学, 2009.

[12] 张 鹤. 基于QTP的自动化测试研究与实现[D]. 哈尔滨:哈尔滨工程大学, 2011.

Technology of Automatic Testing Framework and Application

Deng Lujuan,Li Jinmeng,Dong Dongxiao

(School of Computer and Communication Engineering, Zhengzhou University of Light Industry,Zhengzhou 450001, China)

Automation testing technology is the development direction of software testing in the future. In the process of automatic testing, it will encounter many problems that maintainability is hard, the workload of the script maintenance is big, reusability of the test scripts are poor, the efficiency of testing is low, and so on. Test engineers have been in the mainstream of research and research is that how to introduce the technology of automatic testing framework to solve the above problems. This paper discusses the following questions in the applying process of automatic testing framework: the technology of storing testing script in the script library; the technology of designing test case; the technology of managing and classifying test data; the technology of sharing object library, and so on. Preliminary achieving the following results: improving the reusability and maintainability of test code, promoting the availability of testing execution, thereby reducing the test cost. Finally, we use the collaborative office platform as an example. The automatic testing framework based on QTP of collaboration office platform can reduce the amount of redundant code, speed up the speed of the code generation and reduce the test cycle ,and so on. It also can improve the utilization and maintenance of the code.

software testing; automatic testing; automatic testing framework

2016-03-09;

2016-04-29。

河南省2014科技攻关项目(142102210078)。

邓璐娟(1964-),女,湖南浏阳人,教授,硕士研究生导师,主要从事软件工程、软件测试方向的研究。

1671-4598(2016)09-0086-03

10.16526/j.cnki.11-4762/tp.2016.09.024

TP311

A

猜你喜欢

关键字测试用例脚本
酒驾
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
安奇奇与小cool 龙(第二回)
基于SmartUnit的安全通信系统单元测试用例自动生成
成功避开“关键字”
基于混合遗传算法的回归测试用例集最小化研究
快乐假期
小编的新年愿望
基于依赖结构的测试用例优先级技术
软件回归测试用例选取方法研究