前言
欢迎来到IBM Rational® XDE Tester v2003 指南。
本指南面向初次认识IBM Rational XDE Tester 的用户,指导用户创建、执行、编辑 Rational XDE Tester的回归测试脚本,以此向用户展示Rational XDE Tester 的回归测试策略及解决方案。
Rational XDE Tester简介
Rational XDE Tester 是一个基于windows和linux平台,针对java和html应用程序的自动回归测试工具,Rational XDE Tester通过录制用户对java或html应用程序的动作创建脚本,脚本以java语言编码,以eclipse为编辑器;eclipse是一个开源的开发环境,提供了对测试代码的强大开发和编辑功能,代码编写完成后,用户可以在 Rational XDE Tester下,对应用程序的当前乃至以后版本执行回归测试。
向回归测试挑战
一般来说,一个软件系统里,我们需要发现程序里的缺陷,这些缺陷被修改,再经过测试,之后把修改后的软件交付给用户。但是,由于软件内部程序的相互关联性,即使一个很微小的变化也会引起很大的不可预知错误;软件的任何一个变化,甚至只是纠正一个人所共知的小错,都会影响到系统以后出现难以预计的问题,这种潜在的风险,要远远大于早期全力测试付出的代价。
回归测试是一个软件系统原有缺陷被修改或增加新的功能后,为了保证系统没有功能性失败,而进行的重新测试的实践。一个全面的回归测试能大大保证系统的功能遵从设计。然而,一个全面的回归测试在一个项目团队里通常没有充分的时间和资源来执行,因此想要测试到系统的每个子功能也变得更加困难;这个问题和系统的整个开发周期有关,尤其在那种夜晚发布新版本的开发环境里,对每个版本想要进行全面的回归测试也越来越不可行。这种情况下的通常做法,就是测试一下软件中被修改的缺陷,以及添加的新功能,因此就会给软件团队造成软件发布后出现不可预知缺陷的潜在隐患。
Rational XDE Tester是一款能够挑战于回归测试的自动化工具。Rational XDE Tester的脚本在创建时完全以重复测试系统的功能为目的,对于软件的每个新版本,通过执行测试脚本来保证系统先前功能的有效性。脚本一般在无人看守的情况下运行,当软件系统不断的修改更新,测试脚本库保证软件的每个版本都会从头到尾的充分测试。
Rational XDE Tester 是您想要的工具吗?
回答下列两个问题,可以帮助您决定Rational XDE Tester 是否是您想要的工具:
· 我是不是要测试一个基于Java 或 Web/Browser 的应用程序?
· 我们的测试团队是否熟悉java开发或学习java的强烈热情?
如果这两个问题的答案都是“是”,那么Rational XDE Tester 就是您的最佳选择。Rational XDE Tester 是专门用来测试基于Java 或 Web/Browser 应用程序的,如果您要测试Visual Basic, C++ 或者其他 Windows 32位应用程序,Rational XDE Tester 就不合适,不过IBM 提供了Rational Robot 可以实现这种环境下的测试。和Rational XDE Tester 的理念相同,Rational Robot 保证了基于windows应用程序的自动回归测试。
Rational XDE Tester脚本以java编码,因此您的测试团队要熟悉java开发;但并不意味着每个测试人员都要是java大师,只要有一些基本的java技能,来编辑脚本文件即可。记住,自动测试是真正创建一个程序去测试另一个程序,因此要适当编辑java代码,Rational XDE Tester是一个强大的工具,但并不是万能的。
现在让我们考虑以下问题:
· 你会因为测试时间的限制而放弃一些测试内容吗?
· 你要花费了大量时间在维护测试脚本上吗?
· 你所测试的应用程序因为复杂而不能运用简单的录制-回放来实现自动化吗?
如果这几个问题你都回答“是”,那么您需要仔细看一下Rational XDE Tester 能够给您带来什么,请继续阅读本指南,浏览这个工具;大概一个小时后,您会了解如何录制、编辑、执行和分析您的第一个测试脚本,之后,您会感受到Rational XDE Tester 在您的软件开发过程里所能带来的价值。
开始 Rational XDE Tester
我们从以下三个步骤来开始 Rational XDE Tester:
1. 安装 Rational XDE Tester 软件
2. 安装或配置java运行环境
3. 创建一个测试数据仓库
安装 Rational XDE Tester 软件
通过以下步骤完成Rational XDE Tester的安装(这里提供的是试用版安装过程):
1. 将下载的试用版安装文件解压到一个临时目录
2. 在临时文件里,双击index.html 运行应用程序,点击Evaluation Installation 链接
3. 出现提示要你保存或运行ibmratlxdetester.exe 文件,保存的话,要到指定目录去找setup.exe 并运行:
:XDE Tester EvaluationDisk1
例如 C:TempXDE Tester EvaluationDisk1
4. Rational XDE Tester 安装期间,你会被提示两次:
a. 提示安装路径
b. 提示安装Rational XDE Tester Shell 实例。Rational XDE Tester 试用版提供WebSphere Studio Workbench 2.0的安装,WebSphere Studio Application Developer 5.0 只提供给Rational XDE Tester full版本
5. 启动 Rational XDE Tester
开始—程序-Rational Software-Rational XDE Tester,提示
You will have 15 days to evaluate the product.
Rational
XDE Tester 试用版是一个单机版产品,不能和其他rational产品如Rational
TestManager或Rational
ClearCase集成,只有full版本才可以实现。
安装并配置java运行环境
Rational
XDE Tester 能够创建测试日志来报告测试执行结果,默认情况下,日志是HTML格式;但是为了提供更详细信息,Rational
XDE Tester 需要用java比较器来高亮显示期待结果和实际结果的差异。为了让Rational
XDE Tester 能够从HTML日志的浏览器里运行这些java程序,需要安装配置java运行环境。
Java运行环境是否已经安装到本机了?
一般来说,很可能你的机器里安装了java运行环境(JRE),如果是这样,在控制面板里找到java配置图标,如果能看到Java
Plug-in 选项,说明本机已经安装JRE,可以进入配置JRE步骤;如果没有该选项,需要安装JRE。
安装JRE
从http://java.sun.com/j2se/1.4.1/download.html
下载JRE,并安装。
配置JRE
在控制面板双击Java
Plug-in图标
在
Java Plug-in面板,点击Browser
选项
选择
Microsoft Internet Explorer 或
Netscape(如果你的系统安装了二者),点击应用
关闭控制面板
启动
Rational XDE Tester
在
Rational XDE Tester里选择菜单
Configure à
Enable Environments for Testing打开
Enable Environments 对话框
点击
Java Environments 选项
点击
Select All 按钮,选择当前全部java环境
点击
Disable取消全部java环境
点击
Search打开搜索对话框,选择以下三种中的一种:
Quick
Search 只能用于windows系统,来搜索java环境注册信息
Search
All Drives 扫描全部硬件驱动或分区来定位所有的java环境
注意:不能在linux或unix下使用该方式
选择
Search In 浏览指定驱动器或root目录来搜索
选择一种搜索方式,点击Search
按钮
搜索完成,在列表里显示搜索结果,包括每个JRE全路径
点击
Select All 按钮和Enable按钮激活全部JRE
创建一个
Rational XDE Tester数据仓库
Rational
XDE Tester数据仓库是用来存储测试脚本、期望结果和测试日志的地方,通过以下步骤完成创建:
1.
选择
Datastoreà
Create Datastore…
2.
输入一个描述性的名字,例如这里输入“Eval
Datastore”
3.
选择数据仓库的存放路径
4.
点击
Finish完成创建
使用Rational
XDE Tester
我们开始Rational
XDE Tester 。这里您要录制、编辑、回放Rational
XDE Tester 脚本,您将会了解ScriptAssureTM
功能如何简化动态数据测试,使脚本对应用程序的更改有更大的回旋性。并且,通过Eclipse
灵活并可扩展的shell环境,来平衡java作为脚本语言带来的压力。
关于样例程序
我们这里利用Rational
XDE Tester 自带的Classics
Online 样例程序来说明。该样例程序是一个在线购买CD的java程序,允许用户浏览CD、录入CD订单。样例有两个版本,分别是Build
A 和Build
B,以此来真实模拟如何执行回归测试;我们要在Build
A上录制测试脚本,在Build
B上执行测试。
第一步:创建脚本
重复利用录制的脚本 我们在一个现有的版本里录制脚本,就是为将来版本的测试工作做投资;当下一个版本提交测试时,就在新版本里回放测试脚本,从而代替了手工去测试新版本的工作。 |
这一步,我们录制一个定购CD的脚本,脚本同时支持静态数据和动态数据,录制完成后,我们得到一个java代码的脚本文件,可以编辑和执行。
开始录制脚本
a.
首先确信在测试视窗(Test
perspective)里,Rational
XDE Tester 主窗口的标题栏显示Test
– Rational XDE Tester
b.
选择
File
> New > XDE Tester Script Using Recorder,打开录制新脚本的对话框,我们这里把脚本名字叫做“Order”
,点击完成。
版本控制:
如果和Rational
ClearCase集成,测试脚本可以通过ClearCase做版本控制,以方便于多用户创建脚本的环境,跟踪脚本的即时变更。
录制用户动作
Rational XDE Tester通过记录用户的鼠标、键盘动作来录制脚本,录制时,可以通过Recording
Monitor window窗口监视XDE
Tester的记录活动
a. 录制进程开始后,出现一个录制工具栏Record toolbar ,点击 按钮开始运行测试应用程序。
配置应用程序:为了测试应用程序,首先配置要测试的应用程序,详见后续部分。
b. 弹出开始应用程序对话框,如果已经配置好应用程序,程序名称会出现在下拉列表里,这里我们配置了ClassicsJavaA 。
c. 通过下列步骤完成一个 Haydn’s Violin Concertos的订单
1. 点击Haydn 下的[+]节点
2. 选择 Violin Concertos
3. 点击 Place Order 按钮
登陆窗口Member Logon出现:
4. 选择默认的客户 Trent Culpito
5. 输入密码 secret
重要步骤! 确信点击了复选框 - you'll see why when we get to playback time!
6. 点击Remember Password
7. 点击 Ok
Place an Order 窗口出现,完成下列动作:
8. 输入信用卡号Credit Card Number: 1414 2525 3636 4747
9. 输入过期日期 Expiration Date: 12/05
10. 点击 Place Order
设立脚本的检查点
检查点是在脚本里设置检查内容的位置,通常是捕获一个基线快照,在后续版本里与此进行比较。
a. 订单完成以后,会出现一个对话框提示操作成功信息。
通过检查点的动作向导 Action Wizard来记录检查点,点击Action Wizard的 按钮,将鼠标拖到测试程序的检查信息附近,当变成一个红色方框时,释放鼠标。
b. 点击 Next查看捕获的数据
c. 点击 Finish完成捕获基线数据
d. 点击订单提示对话框的OK
完成录制
查看订单信息,然后完成录制:
a. 选择 Order > View Existing Order Status,点击OK继续
b. 设置一个关于订单信息的检查点
c. 在wizard 的Data Value下拉菜单选择 “Table Contents”
d. 点击Next查看捕获的数据
e. 点击Finish完成捕获基线数据
f. 点击Cancel Selected Order
g. 点击Close
h. 点击应用程序Close 按钮关闭程序
i.点击录制工具栏的 按钮完成录制
第二步:评估脚本
动态数据检查点:动态数据检查点能使测试系统的输出不是常量时,也保证输出的正确性;例如时间、日期、总数、流水号、序列号等。一般来说,测试这种情况需要一定的编码,但是用Rational XDE Tester 就不必编码。
这一步里,我们回放测试脚本,并修改脚本以处理动态数据;样例里订单号在每次定购时都会不同,我们就来处理这个过程。
在Rational XDE Tester里运行脚本
a. Rational XDE Tester脚本能够在命令行、Rational TestManager 里或直接在Rational XDE Tester 里运行,选择Script > Run
b. 运行Rational XDE Tester脚本时,出现一个回放监视窗口来显示脚本里记录的动作,运行完成后,显示测试日志log文件。
查看Rational XDE Tester日志
默认情况下日志文件以HTML 文件形式通过浏览器自动打开,Rational XDE Tester能以文本形式、HTML形式或Rational TestManager形式显示日志。
查看日志文件时,我们会发现第一个检查点失败了,点击 “View Results”链接查看进一步信息。
为什么测试失败了呢?因为每次录入订单后都会产生一个新的订单号,而我们的脚本是以录制时的订单号为基准,显然这样会出错的。现在要将静态数据改成动态数据。
将静态检查点转化成动态检查点
点击Load Baseline的编辑按钮
点击基线值方框上方的编辑文本按钮 ,打开编辑对话框
点击正则表达式按钮 ,将静态检查点转化成动态检查点
编辑文本区域,只将订单号改成 [0-9]{2} 即可,这表示00和99之间任何两位数。
正则表达式
这里提到正则表达式,它是PERL 和其他许多编程里都用到的一种标准的匹配模型。
为了保证设置的正则表达式准确,点击表达式评估按钮
点击Evaluate,如果出现绿色的 “Match”字样,说明表达式正确,否则错误。
点击OK
关闭编辑窗口
保存脚本文件
关闭检查点编辑器
再次运行脚本,确保运行通过
第三步:检查对象映射(object map)
对象映射:弹性回放的关键
您也许注意到了,Rational XDE Tester 在自动生成测试脚本的同时,也创建了一系列对象,这些对象包含在对象映射里,每个对象映射包括被测试应用程序在测试脚本里用到的对象的全部信息;本节就要阐述对象映射在应用程序变更时对增加测试脚本回弹性所扮演的角色。
这一步,我们要打开对象映射,查看Rational XDE Tester 从应用程序中捕获的GUI对象信息。
1. 检查对象映射
对象映射提供了用户对应用程序操作所涉及的每个GUI对象的信息。
在Rational XDE Tester脚本视窗里,扩展测试对象Test Objects目录
私有和共享:对象映射可以是私有的,也可以是共享的,私有对象依附于脚本,只被指定的脚 本访问;共享对象可以被众多脚本访问,因此共享对象对测试对象需要经常更新的情况有很大好处,修改一个共享对象,可更新全部使用该对象的脚本。
双击text对象,它是用户输入信用卡号的文本框
查看出现在Recognition标签里的信息
从该标签里看到Rational XDE Tester捕获了这个对象的五个属性,.class、.classIndex、.priorLabel、accessibleContext.accessibleRole、name,XDE Tester 就利用这些属性寻找信用卡文本框并对它操作。
注意每一个属性都有个权值weight,权值决定该属性重要程度,在本例里,.name属性(权值100)的重要程度是.priorlabel属性(权值25)的四倍,用户可以灵活调节权值大小。
当Rational XDE Tester在回放脚本时,对测试对象不是精确的在应用程序里匹配,而是用一个评分系统在应用程序里寻找最和对象映射里匹配的对象,Rational XDE Tester将对象映射里的对象属性和应用程序里的目标对象属性做比较,最终确定一个分值;最理想的分值是0,假如对象属性发生了一个微小变化,分值会是个比较小的数字,Rational XDE Tester确定一个最小的分数,如果该分数在一个可以接受的容忍值内,那么就对该对象进行操作;这个特点意味着应用程序的GUI对象发生微小变化,不会使脚本运行中断,从而节约脚本维护成本。
关闭对象映射
用户自定义容忍值
基于应用程序会不断升级修改,那么每次回放测试脚本时需要的对象和录制时的GUI对象有所不同,用户可以修改一个对象变化程度的值,保证XDE Tester 在回放时不会因此而停滞。
选择ConfigureàPreferencesàRational XDE TesteràPlaybackà ScriptAssure,用户可以在Tolerant和Strict之间调节该值
第四步:执行脚本
Script Assure缩减脚本维护量
我们现在到了可以体验Rational XDE Tester带来的精彩时刻了!脚本已经创建完成,现在要在应用程序新版本上自动运行测试了;从这点看,我们以后遇到的最大麻烦,就是脚本的维护工作。我们的目标是减少维护旧脚本工作量,增加创建新脚本的时间。这一步里,我们要了解Rational XDE Tester如何利用ScriptAssure 来缩减脚本维护工作量的。
这一节里,我们要执行测试脚本来验证新版本应用程序的功能。
在新版本上回放测试脚本
在新版本回放测试脚本之前,需要修改脚本中应用程序的名称。
a. 在脚本编辑器里,保证脚本Classics.java是激活的。在脚本部分的模板信息下方,看到打开应用程序的命令:
startApp("ClassicsJavaA");
b. 将"A"该成"B",注意这里大小写敏感。
c. 选择 Script > Run运行脚本
d. 脚本回放时,XDE Tester会因为寻找Remember Password复选框,在登陆窗口暂停20秒钟;新版本在标签名称上有个变化,即原来的“Remember Password”改成了“Remember the Password” 。
幸好有了ScriptAssure,标签对象的改变不会影响脚本的回放,ScriptAssure的模糊匹配逻辑该认为标签对象仍然是最贴近对象映射里需要的对象,从而继续执行脚本回放。
e. 等待脚本执行完毕,弹出日志文件。
重设GUI
注意应用程序的新版本里可能会有界面对象重组的情况,但是有了对象映射,XDE Tester不会依赖于对象的分布位置来确定,因此这种情况不会影响脚本的回放。
我们注意到,在日志文件里 Rational XDE Tester出现一个警告提示 “Object Recognition is weak”,意思是说测试中一个对象和录制时的对象信息有所变化。
用户可以决定是否忽略这个问题或者修改脚本文件。忽略问题不会影响脚本回放,但是,会继续提示警告信息;如果修改对象映射文件,使脚本和测试程序保持同步,就不会提示警告了。
这一节讲述了 Rational XDE Tester的ScriptAssure的强大功能。和其他测试工具比较,一般来说针对这样的问题,测试脚本都会中断,需要人工修改脚本;然而这样的脚本问题很浪费时间,尤其对于夜晚自动测试的工作来说,一个小小的脚本错误也会耗时很久。
下一步做什么?
让我们回顾一下刚刚完成的事情:
我们创建了第一个Rational XDE Tester脚本
我们用动态数据验证了一个测试检查点
我们利用ScriptAssure 保证了应用程序变化时也会正常回放
下一步做什么?
我们演示了Rational XDE Tester在实例程序的使用,现在是把它用到您自己测试程序里的时候了!开始之前,首先要配置您的测试程序。
按照如下步骤配置您的测试程序:
选择Configure > Configure Applications for Testing…
选择Add…
这里有三个选项,选择:
Java Application,如果您的程序从一个 java .class 或.jar文件开始
HTML Application,如果您的程序是基于浏览器
Executable or Batch File,如果您的程序从一个批处理或可执行文件开始
点击Run按钮开始测试您的应用程序
如果测试程序启动了,说明配置成功,您就可以对程序进行录制脚本了;如果没有启动,访问Detailed Information 重新设置。
下一步,我们要保证浏览器或者JVM被激活。首先需要按照“安装并配置JRE”来配置JVM。
按照以下步骤激活浏览器:
选择Configure > Enable Environments for Testing
在 Web Browsers标签,选择浏览器,点击enable
在Java Environments标签,选择全部的JVM并点击enable。JVM 一般会被自动激活,这里的操作只是一个防范措施。
Rational开发者网站
为了加深对Rational XDE Tester 的掌握,请访问 www.rational.net 。在这里有很多关于Rational XDE Tester方面的白皮书和技术文章。
总结
本指南说明了如何安装Rational XDE Tester,如何录制和回放测试脚本,以及如何验证动态数据等。