内容发布更新时间 : 2024/11/8 14:38:34星期一 下面是文章的全部内容请认真阅读。
基于RFT的企业自动化测试框架的构建及应用
张英伟, 罗省贤
(成都理工大学 信息科学与技术学院,成都,610059)
摘 要:自动化测试是软件测试的重要组成部分,对企业来说,如何构建一个适合自己的自动化测试框架,
是整个自动化测试研究的关键所在。该文利用RFT强大的编程能力优势,基于RFT实现了一套企业自动化测试框架,并在金融系统测试业务中得到有效的应用。
关键词:自动化测试;RFT;测试框架;金融系统
中图分类号:TP311 文献标识码:A
Creation and Application of Automatic Test Framework for enterprise based on RFT
ZHANG Ying-wei, Luo Sheng-xian
(College of Information Science and Technology ,Chengdu University of Technology,Chengdu, 610059,China)
Abstract: Automatic test is an important part of software test. So for enterprise, how to build a suitable automatic test framework will be the key to start automatic test study. By the powerful programming capabilities of RFT,this Paper implements an automatic test framework for
enterprise based on RFT and this test framework has been effectively applied in test business of financial system.
Key words: Automatic Test; RFT; Test Framework;financial system
0 引言
企业在进行自动化测试之前,往往需要首先创建一个测试框架,然后基于测试框架进行自动化测试。因为一个设计良好的测试框架能为自动化测试带来很多便利,例如脚本的开发、案例的管理等等。RFT作为当前最流行的自动化测试工具之一,基于Eclipse开发平台并且提供强大的编程能力,是企业构建测试框架最常用的测试工具。本文基于RFT研究了构建自动化测试框架的方法,并设计与实现了一套适用于金融业务系统测试的自动化测试框架。
1 自动化测试框架概述
自动化测试框架就是用一种简单的方法实现自动化测试的三大功能:对象识别,检查点和数据驱动[1]。它不是一个简单的可以直接使用的产品,而应是一组自动化测试的规范、测试脚本的基础代码,以及测试思想的集合。更多的表现为一组抽象构件以及构件实例间交互的方法。自动化测试框架的好坏直接影响到自动化测试的成功与否[2]。 1.1 构建自动化测试框架的目标
经验告诉我们,真正的自动化测试,绝不仅仅是掌握了某个自动化测试工具的使用或者掌握了脚本的编写技术就能够达成。面对复杂的ERP系统,简单的录制/回放并不能达到自动化测试的要求,完全通过编写脚本的方式不仅工作量巨大且可维护性极差。自动化测试的目的就是为了提升测试效率,不具备可维护性、复用性差将成为导致自动化测试失败的最致命因素。因此企业在实施自动化之前,必须搭建一套适合自己的自动化测试框架,将脚本有效的组织、连贯起来,提高测试脚本的可维护性和可读性,其最终目标就是花少量的资源来
1
完成尽可能多的测试任务。
1.2 自动化测试框架设计的参考准则
一个优秀的自动化测试框架应具备以下几个特点:
(1)测试框架与被测系统独立[3]。由于被测系统可能有多个,因此测试框架应关注被测系统共同的部分,提供供被测系统调用的接口,把与具体被测系统有关的部分从框架中移除。 (2)测试框架易扩展和维护。一个优秀的测试框架应高度模块化,这样可提高框架的维护性和扩展性。各模块间相互独立,对模块内部的修改不会影响到其他模块。
(3)测试脚本复用性高。在测试过程中,经常会遇到不同的测试案例有着相同的操作步骤,只是数据不同而已。好的测试框架应该能提供一种方案,对于相同的操作步骤,只需开发一次脚本,提高脚本的复用性。
(4)测试框架简单易用。大多数情况,测试人员不是开发人员,甚至有时候不是专业的测试人员,对于这些使用者来说,测试框架的使用要简单,测试语言要易于理解,这样可以使他们专注于业务相关内容的测试脚本编写。 1.3 几种常见的自动化测试框架
(1)模块化测试框架。该框架首先需要创建小而独立的可以描述特定功能的脚本块,将这些脚本块组合起来,就能形成相关测试案例的脚本[4]。模块化框架在所有测试框架中是最容易理解和实现的,因为它基于一些众所周知的编程方法,例如抽象,封装,关注分离等等,该框架也是最易于和其他框架联合使用的。 (2)数据驱动测试框架。数据驱动测试是一项单个测试脚本使用不同的输入和响应数据被重复执行的技术,测试数据由外部数据文件提供,例如数据池,ODBC源,Excel表,XML文件,DAO对象等等。当测试对象流程固定不变时(仅仅数据发生变化),可以使用这种框架。
(3)关键字驱动测试框架。该框架会提供一些常用的关键字,这些关键字适用于各种类型的系统,并且为自动化测试工具和被测系统提供了抽象性。例如,可以使用相同的测试案例来测试类似的Web和Windows系统,而与使用的自动化测试工具无关。使用该框架可以通过很少的代码产生大量的测试案例。
(4)混合型测试框架。混合型测试框架顾名思义就是以上几种测试框架的结合,这种类型的框架吸取了其他几种框架的优点,但往往也会因此变得庞大而复杂。因此企业在选择测试框架时,一定要根据自己的业务需要,选择适合的框架。
2 RFT概述
2.1 RFT简介
RFT全称为Rational Function Tester,是IBM公司的一款面向对象的自动化功能测试工具,它适用于测试人员和GUI开发人员,并且第一次为Java和Web测试人员提供了与开发人员同样的操作平台(Eclipse)[5]。RFT最大的优势在于其强大的编程能力,使用Java或者VB.Net两种面向对象的编程语言作为其脚本开发语言,因此能完成很复杂的程序设计,但对测试开发人员在程序设计能力方面的要求也会相应提高。 2.2 使用RFT进行自动化测试的基本流程
使用RFT进行自动化测试的基本过程一般包括以下5个步骤[6]:
(1)录制测试脚本。RFT拥有先进的对象识别、鼠标和键盘监控机制,测试人员录制脚本时只需模拟用户的操作,像执行手工测试的步骤一样操作被测系统的界面即可。另外,在录制脚本的过程中,还可以方便地利用RFT的数据池进行数据驱动;
(2)编辑测试脚本。录制的脚本往往存在很多不合理的地方,需要对其进行修改。主要包括调整测试步骤、编辑测试逻辑、删除冗余代码、添加注释、插入验证点等等,在这一步
2
骤中可将RFT强大的编程能力体现得淋漓尽致;
(3)调试测试脚本。由于RFT基于Eclipse平台,因此可以非常方便地对测试脚本进行调试。在调试过程中,可以打开RFT的测试对象检查器,查看或者修改控件的属性、方法等等,以便更好地调试;
(4)运行测试脚本。与在Eclipse平台运行java应用程序一致;
(5)分析测试结果。RFT提供三种类型(Text, HTML, TestManager)的日志,供测试人员查看和分析测试结果。
2.3 利用RFT构建和扩展自动化测试框架
利用RFT可以方便地设计企业的自动化测试框架,典型的RFT框架示意图如1所示。图中配置文件用来存取数据,减少后期对脚本的维护。首先,脚本执行从配置文件中读取数据,脚本执行完成后,把需要验证的数据和配置文件中的数据进行对比,最后输出日志显示结果。
脚本 日志 配置文件 图1 RFT基础框架示意图
图1是目前RFT框架的简单示意图,企业在设计测试框架时,可以基于此进行扩展。另外,由于RFT只是一个简单的自动化测试工具,虽然其本身具备强大的功能,但企业的自动化测试框架是一个复杂的解决方案,很多要求RFT是无法满足的。为了让RFT更好地满足不同企业具体的需求,就必须开发适合企业自身需求的扩展插件。而RFT基于Eclipse平台的特点可以让企业很方便地开发自己的插件。
3 基于RFT的自动化测试框架的设计和实现
对于一个自动化测试框架来说,当然是自动化程度越高越好,典型的自动化测试框架应该包括两方面的自动化,即测试案例生成自动化和测试案例执行自动化。 3.1 测试案例生成自动化
图2是自动化测试框架下的案例自动生成的流程。图中每一步都代表该自动化测试框架的一个模块,模块间互相独立,这也体现了自动化测试框架设计的一个参考准则。
外部Excel数据 交易要素生成 交易模板生成 交易模板分发 业务对象生成 用例数据表生成 模板要素同步 测试用例生成 用例数据生成
图2 自动化测试框架中的案例自动生成流程
3.2 测试案例的分析
3