心念旧安,夙夜忧叹。

什么叫做“关键字驱动”

上一篇 / 下一篇  2007-09-02 22:27:32 / 个人分类:转贴好文

51Testing软件测试网Fw~8Pf

今天忽然发现oldsidney兄弟消失好久了,特此转贴一篇他N年前的火星帖,希望能借此召唤他来冒个泡。呵呵^_^

*x@(ZoP0

w+o _@pzp0不知道为什么我的blog贴不了图了,以下原文出处:http://blog.joycode.com/oldsidney/articles/23580.aspx

,X"S%s a/]kx0

7{ J b1Q"YNY0 51Testing软件测试网 Y,D%l V.N

何谓Keyword-Driven Testing51Testing软件测试网 G\2`p:| v$e

MercuryQuickTest Professional 8.0中,又出现了一个新的名词(对我来说是新的名辞啦) - Keyword-Driven Testing。到底什么是Keyword-Driven Testing呢?51Testing软件测试网T2q U+sE!C Pa

以录制方式建立测试的问题51Testing软件测试网ox{Y9VDX/V

一般来说,自动化测试通常是透过录制的方式建立测试脚本的,这样的方式看似容易,但是实际上会遇到下列的问题:51Testing软件测试网mIC%OC$l

1.            测试人员大多不具技术背景,难以完全掌握测试工具

[.^g%C:a@Va0

2.            应用软件必须达到一定的稳定性,才能开始录制测试脚本

^'Mx nj]$[0

3.            自动化测试脚本与文件是分开的

`w] JEn}!i;X;G6T0

4.            维护自动化测试脚本的成本非常高51Testing软件测试网![MM J0D;u['Z

关键词驱动(Keyword-driven )51Testing软件测试网5WQjb?hoH

QuickTest 8的「关键词驱动(Keyword-driven )」测试架构,主要是为了解决上述「透过录制产生测试脚本」的问题的。51Testing软件测试网R,j5S$}$K;~P:qh{

透过「关键词驱动(Keyword-driven )」测试架构,测试人员不需要「录制测试脚本」,进而改成「设计测试脚本」。

']2m Rh;|vb@\(^ E0

建立Object Repository

`;`0l:P#S` l7P0

在之前的文章有提到,通常测试工具都是「Object Base」的。在QuickTest储存Object的地方称为「Object Repository」。51Testing软件测试网K*g Q(k7b8u'V-k3O

所以一开始,要先将应用软件的GUI Object,先记录在「Object Repository」中。所以会先开启「Object Repository」,按下「Add Objects」按钮,将应用软件的GUI Object加入「Object Repository」中。

v$G'i_-Tg0

 

)x3\9E nKB0

接下来点选应用软件窗口的标题列,会出现对话窗口问您是不是要把您刚刚点选的窗口加入「Object Repository」,点选「OK」。51Testing软件测试网T lxb2VI

!s2C `.I} \z0

由于您选择的Object是一个窗口,所以QuickTest还会进一步问您,是不是连窗口内的所有Object都要加入「Object Repository」,选取「Selected object and all its descendants」后点选「OK」。

IJ&k~b6f0

3K)b&yOQ0

之后,您就会看到Object Repository」中会出现这个窗口内的所有GUI Object51Testing软件测试网)~#n2n9^,h,aKS^Si

e;s2hZ+Aq0

接下来,建议您将那些Object名称很奇怪,或是看不出代表哪一个ObjectObject名称作个修改。例如我将原本名为「Button_5」的object,改名成为「NewOrder」。51Testing软件测试网K"pfrUT%O

在使用测试工具时,这是非常重要的一个动作,为您测试脚本中的object名称,订定一个统一的规范,可以替日后的维护,减少非常多的成本喔!

w2@"f E|:a&_R0

|jpo O-QC/|#M0

可以开始设计测试脚本了51Testing软件测试网0q,\t'`0P

接下来,您可以开始设计测试脚本的工作了!注意我使用的是「设计」而不是「录制」,因为建立测试脚本的过程,就像是您在一个Excel文件上设计测试个案一样。51Testing软件测试网E)nnL!I'u;y

您将会设计每个测试步骤,每个测试步骤主要有三个元素:51Testing软件测试网L(`xYEo8H-\)pP"Q

·Item:这个测试步骤是作用在哪个object上,可能是个窗口、按钮、或是输入字段。51Testing软件测试网D;dOk[L!W

·Operation:在这个object上,您要执行什么动作,如ClickTypeSelect

"J:CoZ XC0

·Value:有些动作,会需要输入数据,如从一个清单(list)上选择某个选项,或是在输入字段(edit box)中输入某些值,您必须告诉QuickTest要用什么数据。51Testing软件测试网;kv1Nv(eo6Uc

而且当您设计好一个测试步骤后,在Documentation字段,会自动以英文句子显示这个步骤的说明,这也是QuickTest的另一个新功能「Auto-documentation」,您在设计测试步骤的同时,文件也自动产生了。

I@HgUqs4B&?0

接下来,我将以在Flight ( QuickTest内建的范例程序),建立一个「新增订单」的测试个案。51Testing软件测试网 gTFY1N bG@G

这个测试个案的第一个步骤就是先Active Flight Reservation的主窗口。要建立这一个测试步骤,以要在Keyword View上的Action1下方点一下,就会出现Object的清单,供我选择要作用的object。我只要选择「Flight Reservation」这个窗口object就行啦。51Testing软件测试网"Ye6k9AqY/u6s

T,PJ\ }_0

接下来,因为我要让这个Flight Reservation窗口Active,所以我只要在Operation」字段选取Active。因为这个Active不需要任何的数据,所以我不用在Value」字段中输入任何数据。51Testing软件测试网X]H5iFe

所以我的第一个测试步骤就完成了。同时也可以看到在Documentation」字段中自动出现「Make the "Flight Reservation" window active.」的说明。

EC/iT K0

51Testing软件测试网 w$T1OJ$o ^x R#wxC

第二个测试步骤,我需要在主窗口上的「Data of Flight:」中输入出发日期,我同样也按照上面的方式,在「Item」字段选择「Data of Flight:」,在「Operation」字段选择「Type」,然后在「Value」字段输入我要出发的日期「12/12/04」,到这里我已经完成我的第二个测试步骤。

0Fc6Fd3l0~$K0

51Testing软件测试网9Z A!QYue,];E

至于其余的步骤,我也是以同样的方式去完成,你可以看到整个测试脚本其实和你透过录制的方式所建立的测试脚本一样,这个测试脚本已经是一个可以执行的测试脚本。

pIT!vfL"A$W}JR0

`Be \-Sj\0

结论51Testing软件测试网;i]5t)jb

所以,您可以看到整个测试脚本建立的过程,完全不需要去执行整个「新增订单」的操作流程,只要先完成应用软件的使用接口(UI),就可以建立一个已经准备好可以执行的测试脚本。

*EC5t$Q8K){_(x@"|0

这也表示您的应用软件只要有使用接口(UI)就可以了,并不需要真的可以运作。所以测试人员不需要等到应用软件已经开发得差不多,才开始建立测试脚本。测试人员可以更早就开始建立测试脚本了。51Testing软件测试网+s.SSW3S:v1J2p\U k

听起来是不是有点像XP所说的「测试先行」的概念呀!

$hd[?p\s0

同时在建立测试脚本的过程中,测试步骤的文件也同时产生。51Testing软件测试网Hn"vf7cpDY~2o

至于测试脚本的维护,也与建立的过程一样简单,不管是使用接口(UI)还是操作流程的变动,都可以轻松改变测试脚本。

R L xM)a q$co0

对于技术背景不深的测试人员、系统分析师、使用者,建立测试脚本就像是在一个Excel中撰写测试个案一样简单。

+F-u}Kaf*n0

以上就是我目前所了解的Keyword-Driven Testing!51Testing软件测试网 s So+e8h'X\N


TAG: 转贴好文

 

评分:0

我来说两句

日历

« 2024-04-24  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 453747
  • 日志数: 138
  • 图片数: 4
  • 建立时间: 2006-11-26
  • 更新时间: 2013-08-30

RSS订阅

Open Toolbar