不谋万世者,不足谋一时;不谋全局者,不足谋一域。君子敏于事而慎于言 新浪微薄:土司阿哈

rft基本录制过程

上一篇 / 下一篇  2008-05-25 11:59:40 / 个人分类:Rational

1208328177
  • 自动化测试:
  • 测试文档:

 51Testing软件测试网@1v'^Tg dY,C4}2F

Rq6^o8k01 基于与开发人员同一开发平台的功能测试51Testing软件测试网k-ic.H7Ya

F}'zW [0IBM RFT的最大特色就是基于开发人员的同一开发平台(Eclipse),为Java和Web测试人员提供了自动化测试能力。如图一所示,使用RFT进行软件测试时,我们只要在开发人员工作的Eclipse环境中打开Functional Test透视图,就会马上拥有专业的自动化功能测试工具所拥有的全部功能。

a"P;D9bQ2T0k051Testing软件测试网 T4_!}:G5n.X

51Testing软件测试网l#C_&? q"vT s
图一、IBM Rational Functional Test工作界面51Testing软件测试网|8^ h3N7q K _
图一、IBM Rational Functional Test工作界面
G)E)w)h;sA0

@$ce\~.m+JF0

O7z"k,G(f/Y8@0在RFT中实现测试脚本的过程和大部分的自动化测试工具一样,是基于录制的脚本生成技术。当我们完成测试用例后,只要在功能测试工具条上选择测试脚本录制按钮,就会启动测试用例的脚本实现过程。51Testing软件测试网9B2[^D3b9?IG

0gEwd%HU0如图二所示,在脚本录制的"选择脚本资产"对话框中,用户可以选择预定义好的公用测试对象图和公用测试数据池,也可以选择在脚本录制过程中生成私有测试对象图和数据池。测试对象图是IBM用来解决测试脚本在不同被测版本间,成功回放的关键技术,它为测试脚本的重用提供了重要保证;而测试数据池是IBM用来实现数据驱动的自动化功能测试的重要手段,使用智能化的数据驱动测试向导,测试脚本的参数化几乎变得易如反掌。51Testing软件测试网b6_P,H1?0b[_L0V

u-|1BP%W~l'g051Testing软件测试网2gts;hE:yj2Z5~
图二、"选择脚本资产"对话框
@ Ag,C%d0图二、选择脚本资产对话框
SNWz7X+?Sy|0

:btd"g7~)]7S!m051Testing软件测试网+R^{}tv1Z `&g[

如图三所示,在功能测试的录制监视窗口,测试员可以根据提示启动被测应用系统,执行测试用例中规定的测试步骤,实现测试脚本的录制。在测试脚本录制过程中,测试员可以根据需要插入验证点和数据驱动的测试脚本,验证点是在指令中比较实际结果和预期结果的测试点,自动化功能测试工具正是通过它实现对被测系统功能需求的验证。

0Z'|*nY;X lbX0

JM;f z1G$aZE0
2S Q jmS.MD0图三、测试脚本录制窗口
$`7WaiP?%d%s0图三、测试脚本录制窗口51Testing软件测试网UC a?t-Y+s.@
51Testing软件测试网;]$A R"B\#gv

&i#`V8nw0完成脚本录制过程以后,RFT会自动生成用工业标准语言Java描述的测试脚本,如下所示:

4~0D]TLs%K051Testing软件测试网 TM*mdTHCz

51Testing软件测试网+Bi V#Z8a/C+V _

import resources.ThirdwithDatapoolHelper;
import com.rational.test.ft.*;
import com.rational.test.ft.object.interfaces.*;
import com.rational.test.ft.scrīpt.*;
import com.rational.test.ft.value.*;
import com.rational.test.ft.vp.*;
/**
 * Descrīption   : Functional Test scrīpt
 * @author ndejun
 */
public class ThirdwithDatapool extends ThirdwithDatapoolHelper
{
	/**
	 * scrīpt Name   : <b>ThirdwithDatapool</b>
	 * Generated     : <b>2005-4-17 15:22:36</b>
	 * Descrīption   : Functional Test scrīpt
	 * Original Host : WinNT Version 5.1  Build 2600 (S)
	 * 
	 * @since  2005/04/17
	 * @author ndejun
	 */
	public void testMain(Object[] args) 
	{
		
		startApp("ClassicsJavaB");
		
		// Frame: ClassicsCD
		classicsJava(ANY,MAY_EXIT).close();
	}
}

O-` aq%zN1i6} Z051Testing软件测试网AF2vAZ ]rX

djO$i-p3e^0基于Java的测试脚本,为高级测试软员提高了更强大的编程和定制能力,测试员甚至可以通过在Helper类中加入各种客户化脚本,实现各种高级测试功能。

WJF`x-D;@c0

+D0rc/{`e8c+k02 使用RFT轻松实现数据驱动的软件测试51Testing软件测试网0a(\w;D-{"b:h{

P'o;O/rj0ZsUEep0RFT具有基于向导(Wizards)的数据驱动的功能测试能力。在功能测试脚本的录制过程中,如图四所示,我们可以方便选择被测应用图形界面上的各种被测对象,进行参数化,通过生成新的数据池字段或从数据池中选择已存在数据字段,实现数据驱动的功能回归测试。51Testing软件测试网/r2bK] M/g6T"h P

51Testing软件测试网^ L/w"dm],K(k"b

51Testing软件测试网k2lhfCj/}
图四、数据驱动的功能测试51Testing软件测试网cZn s"ry)RY
图四、数据驱动的功能测试
/qCF"~` V Z!^+l0

&Pl p pW&i V"KX~0

%D IC!Y%}0在生成测试脚本的同时,RFT还能够帮助测试员在验证点中使用正则表达式或使用数据驱动的方法建立动态验证点。动态验证点用来处理普通验证点的期望值随着输入参数不同而发生变化的情况。在下面的例子中,如图五所示,订单总金额会随着购买商品数量的不同而变化,通过数据驱动的功能测试方法,测试员首先要对购买的商品数量和订单总金额进行参数化,然后编辑验证点中的期望值,将其用数据池中的对应订单总金额代替,这样验证点中的总金额就随着购买商品数量的不同而得出正确的总金额。通过简单操作、无需任何编程,测试员就可以很方便地实现动态验证点的功能。

"VHN2jw J0

&L g!F3u)BS051Testing软件测试网6]8v+jBQ6i%f{
图五、生成动态验证点51Testing软件测试网5nE T&_T i5bg
图五、生成动态验证点51Testing软件测试网b1KAcS-I1t0s
51Testing软件测试网 |]?n;qF;WI*F1k6F

51Testing软件测试网V3kq?.bB;sT

此外,测试员还可以通过在验证点中使用正则表达式,建立更加灵活的验证点,保证测试脚本的重用性。51Testing软件测试网G z1w9la2b)T

/g'T-n6U3l#Zdj1V051Testing软件测试网 K&UifH^Mnk1w
图六、正则表达式在验证点中的应用51Testing软件测试网x;U6dD'VMi
图六、正则表达式在验证点中的应用
LWV(WVR0

,Q&}9paYU0

cI1l:b2t LKo03 提供多种专利技术,提高脚本的可维护性51Testing软件测试网,b5E1g2Q? rrtn

cC-X ]7e!GR0使用IBM Rational Functional Test工具进行Java和Web应用系统测试时,标准Java的测试脚本语言,为测试脚本的可重用性和脚本能力提供了第一层保证。此外,通过维护"测试对象图",IBM为测试员提供了不用任何编程就可以实现测试脚本在不同的被测系统版本间的重用能力。"测试对象图"分为两种,一种是公用"测试对象图",它可以为项目中的所有测试脚本使用;另一种是私有"测试对象图",它只被某一个管理的测试脚本所使用。在软件开发的不同版本间,开发员会跟据系统需求的变化,修改被测系统和用于构建被测系统的各种对象,所以测试脚本在不同的版本间进行回归测试时经常会失败。因此,通过维护公用"测试对象图",如图七所示,测试员可以根据被测应用系统中对象的改变,更新测试对象的属性值及对应权重,这样在不修改测试脚本的前提下,就能使原本会失败的测试脚本回放成功。同时,为了方便测试员对测试对象图的修改和维护能力,RFT还提供了强大的查询和查询定制能力,帮助测试脚本维护人员快速找到变化的测试对象,进行修改和维护工作。51Testing软件测试网i$a*K n0M-b4b

yH7T5k$O'F0lPK051Testing软件测试网5wnZ1s]
图七、测试对象图的维护
~&cIcnz:cd t0图七、测试对象图的维护
'W6nc%xfB051Testing软件测试网fIx(L!Z_7v;h

[)l._{4o,y#R8Ta0其次,IBM提供的scrīptAssurance专利技术,使测试员能够从总体上改变工具对测试对象变更的容忍度,在很大程度上提高了脚本的可重用性。scrīptAssurance技术主要使用以下两个参数:脚本回放时,工具所容忍被测对象差异的最大门值和用于识别被测对象的属性权重。使用这种技术,测试员可以通过Eclipse的首选项设定脚本回放的容错级别,即门值,如图八和图九所示:

(Y q:@;_B)n Y hEo051Testing软件测试网 xPZ,K:tJ/UFP


PPs M9Sk\3B0图八、IBM专利技术:scrīptAssurance容错级别设定51Testing软件测试网!x;{OH P,F
图八、IBM专利技术:scrīptAssurance容错级别设定
(q?9m$O*Z&a0

+gT ]F`F%M,n5L0

Pg s7NY*oK(e0点击高级,能够看到各种具体的可接受的识别门值。51Testing软件测试网Hf0{rVzj

PF)Z&iJ7yu0
~ f x'k.V\:I0图八、scrīptAssurance门值设定
`/uV6|;F0图八、scrīptAssurance门值设定
jupt-G"Q/K.c0

[#uGvm*aV3tOr051Testing软件测试网!Zs8]IsZ,W

其次,测试员可以根据被测对象实际更改情况,在测试对象图中(如图七所示)修改用于回放时识别被测对象的属性及其权重。在测试脚本回访时,测试对象的识别分数将由以下公式计算得出:

6C1EF o4]0

dN!QnML ~0
*x8M ^1}s,w&]}0

int score = 0;
for ( int i = 0; i < property.length; ++i )
score += (100 - match(property[i])) * weight;

;zp7bv-n1@_R4s051Testing软件测试网_F P bX9~

C8MFAA?L\0其中,match()将根据属性的符合程度返回0~100之间的值,完全符合返回100,完全不符合返回0。51Testing软件测试网|'h6B Zj2jZ&~.X

C"k&A})t)CA ]0测试脚本回放成功与否则取决于:识别得分 < 识别门值。通过这一技术,如图十所示,通过设置恰当的scrīptAssurance门值和为用于识别对象的属性设置合适的权重,即使在两个回归测试的版本间测试对象有多个属性不同,对象仍有可能被正确识别,脚本仍有可能回放成功。这为测试脚本的重用提供了最大程度的灵活性。51Testing软件测试网n5NG3b5v Zv

51Testing软件测试网Qd cp+~ eX

51Testing软件测试网|`bP:P;E eDc2|o
图十、scrīptAssrance技术保证脚本的重用51Testing软件测试网#PEP:~#n&z1]\
图十、scrīptAssrance技术保证脚本的重用51Testing软件测试网GBD*m/r$evO

-{ x S)M*_%m%]*c'Qn051Testing软件测试网5v%K+pLE2\'O

4 与其它生命周期管理软件的完美集成

p|F.}c(d0

9Cp G IOmo]L0IBM Rational的自动化功能测试工具基于Eclipse平台,提供了和需求管理工具(RequisitePro)、建模工具、代码级测试工具和变更及配置管理工具(ClearQuest和ClearCase)的完美集成,这使得系统测试人员能够和整个软件开发团队在同一个软件平台上,实现系统功能测试,完成测试脚本的配置管理和缺陷追踪。

9hJs]S{051Testing软件测试网 wKt] ~$Y2b.CX5hg

51Testing软件测试网7D|$gf^ U5i.w


!P#iK5I l0

5w0Y|\H/J0

"Q!| { y*x5e,B05 小结51Testing软件测试网'vqq5{ q8qo

4M:Ro2|Bg K@U3?;u0如果一种软件工具能够在提供强健的自动化测试脚本录制和自动化测试能力的同时,很好地解决测试脚本的可维护性、大批量数据驱动的软件测试和整个软件开发生命周期的集成问题,它无疑为降低软件测试的质量成本提供了重要保证,而IBM Rational Functional Tester正是这样的工具,它的出现必将使我们的测试生活变得更加美好!

xcd'F m0`q~}8q~q0

TAG: Rational

引用 删除 joanne.miao   /   2014-09-11 13:05:24
5
testxiaoyang的个人空间 引用 删除 testxiaoyang   /   2010-10-16 10:58:52
还不错
 

评分:0

我来说两句

Open Toolbar