不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。
it is no use doing what you like, you have got to like what you do.
Robot 的自动化功能测试框架
上一篇 /
下一篇 2007-01-09 11:11:07
/ 个人分类:Robot技术
1. 前言测试本身就是一项异常艰苦的工作,而成功的进行自动化的功能测试,对很多软件开发组织来讲,更是困难重重。本文介绍了构建在IBM
Rational Robot基础之上的自动化功能测试框架,来帮助组织更好的进行自动化的功能测试。
)W*^E:gn02. 现实的挑战51Testing软件测试网@ x"s!x[
2.1 自动化测试的迫切需求51Testing软件测试网U`%i"X/g(YX~
随着业务的变化,软件产品的种类越来越多,软件产品的升级越来越快,在很多的软件开发组织中,测试部门承受着巨大的压力,他们一方面要测试越来越多的软件产品,一方面要应对越来越短的测试时间,同时,还要面对捉襟见肘的测试资源。
_$G
L @WP0每
个版本发布都包括新增加的功能和已有的功能,已有的功能已经在以前的版本中进行过测试,但是还需要在此版本中执行回归测试。在这种情况下,测试部门往往会
考虑到,既然回归测试的测试用例都已经存在并且已经在上一个版本中执行过,那么在新版本中能否自动的执行这些测试?如果能这样的话,将极大的节省时间和资
源,将有限的资源投入到新功能的测试上,缓解测试的压力。51Testing软件测试网*fu9bx6r~d[
通常情况下,软件开发组织会使用自动化测试工具,使用录制回放方式来进行功能测试的自动化。但是录制回放方式并不能解决全部问题。51Testing软件测试网q/Oi&@ C
2.2 录制回放中存在的问题51Testing软件测试网|rOg%Z-t
业界的经验表明,虽然录制回放方式能够快速的生成测试,但是仅仅单纯的使用录制回放是不够的。51Testing软件测试网+Fl(M$pIw9EJh(Ns
首
先,也是最主要的原因,就是使用录制回放方式,往往需要耗费时间和资源来调试、维护脚本。这些工作量随着脚本数量的增加,可能会增大到几乎不可能再对脚本
进行有效维护的地步;其次,使用录制回放方式,要求应用已经开发完成并且在录制中不出现错误,但是往往当应用达到此条件时已经没有足够的时间进行测试;最
后,使用录制回放方式,要求每个测试人员均会使用测试脚本语言“编程”,而当前大多数软件开发组织测试人员专注于业务,往往没有兴趣和精力来“编程”。
W|:?#DP8r0所以,录制回放方式并不能解决所有的问题,在自动化的功能测试上,需要有测试框架的支持。51Testing软件测试网&i4Ial8a%P,IB
3. 解决之道
a8Uz1Kj+{({eun6r1C"E03.1 概述
c"C:y nYz`_0IBM Rational Robot是一款优秀的自动化测试工具,自动化功能测试框架是基于Robot之上构建的。如下图:
(Mm(W Z.d4Zml3b
_C0图 1. 基于Robot的自动化功能测试框架51Testing软件测试网%d-fCC8El
51Testing软件测试网2x
z8?*qd
P
业务测试人员类似于当前软件开发组织中使用手工执行测试的测试人员。可以看到,在解决方案中,除传统的业务测试人员外,增加了技术测试人员角色。技术测试人员偏重于自动化测试相关技术,实际上并不直接执行测试。解
决方案的核心是使用Robot的SQABasic脚本开发的Robot测试技术框架。此Robot测试技术框架以表驱动为指导思想,读入动态结构,解释并
执行动态结构中的每一项,是自动化测试的引擎。同时,为了提高Robot测试技术框架的易用性,在解决方案中还包括测试设计工具,它是使用其它编程语言,
比如JAVA、Dephi等开发的应用程序。在测试设计工具中,测试技术人员首先建立和待测试应用一一对应的静态结构,此静态结构以页面为单位,随后业务
测试人员从静态结构中选择不同的页面,组成测试动态结构,即测试用例,随后,此动态结构被Robot测试技术框架读入并解释执行。51Testing软件测试网s0KbVa
3.2 Robot测试技术框架51Testing软件测试网&A}JGU|'hk
z
3.2.1 表驱动介绍
zB
H0`@6tvS0Robot测试技术框架是基于表驱动测试思想。表驱动测试就是预先在表中定义清楚代表每一步执行操作的关键字,然后由脚本读入表中的每一行,根据关键字来执行对应的动作。以CQ
Web登录界面为例:
FQ V,Rn^N0Y#s7{0图 2. ClearQuest Web登录界面51Testing软件测试网0X:];uI@$E
H
+mT iR _5RjF1Y(m6Q1M051Testing软件测试网3u2S*Ye%~4aA(g-_0wc
当要自动执行“登录”按钮时,可以如下图来定义此表:登录
%jB|5?!c0然后在Robot的脚本中,打开表,读入此行并执行。这样的话,Robot便去点击界面上的“登录”按钮了。
,O3~w
t;W/v0'打开文件 T0I` mKY4L]"K?0Dim sData() as string M^ nQCcips~}X`0InFileName = getExcelFileName51Testing软件测试网7tk*z&~3]+b%I6j ReadExcelData InFileName, sData()51Testing软件测试网}U?#~e!m =============================== E'@"T-@(sj0‘解释并执行 "KW3{Q-QQr^0Select Case (sKeyWord)
|