更多的文章,访问我的个人博客:www.cesoo.info

《测试框架》摘选-8 AC框架脚本开发规范

上一篇 / 下一篇  2009-11-23 23:25:04 / 个人分类:自动化测试框架

up_,b;G)z0衡量一个软件自动化测试团队成熟度的一个很重要标志就是是否建立了测试脚本开发标准规范体系。51Testing软件测试网"y D3Z-@.xsY4S?

51Testing软件测试网/B1nK(|0jM*Q


&s1C;p\9Y'K J Ta01.3.1 自动化测试为什么需要规范
'a%u.Af \PK d(Z0  下面以一个实际场景故事来说明自动化测试开发规范的作用:51Testing软件测试网#~+^ ~*@!J4y
场景主人公1:老王,团队自动化测试元老51Testing软件测试网 q'Fku ]
场景主人公2:老李,团队自动化测试元老
Zu3ZbwWA{0场景主人公3:小李,跟随小李学习自动化测试
3ce!|;T:~+a:DQT0场景主人公4:小王,跟随小王学习自动化测试51Testing软件测试网1w2y|d6B:j2_,E
场景主人公5:小赵,机房管理维护人员51Testing软件测试网j)c_Gd4S2R5M
场景故事:51Testing软件测试网MaT%S;D
      某公司决定组建一个团队来开发自动化测试,老李和老王被选作自动化测试团队的成员,各自负责不同的模块开发测试脚本。他们上任之后,开始紧张忙碌地去学习测试工具,录制开发脚本,当然由于时间紧,他们两人各自忙碌着,没有时间去交流。一个月之后,对自动化测试的需求逐渐增大,公司决定增加两个新人手,小李和小王。按照公司“老手带新手”的惯例,老李负责带小李,而老王负责带小王。不出意料地,小李学习了老李一套编程风格和函数库规范,同样地,小王学习了老王的工作风格。不过到这里,一切工作都运行顺利,相安无事,因为他们一直负责各自脚本的开发,运行及维护。
C:s4Az!^y0随着自动化测试规模的扩展,现在老王和老李的两个小团队已经开发出了数千行的自动化测试脚本代码,这么大规模脚本在提高测试效率的同时,也增加了脚本运行和维护的工作量。公司领导决定将所有的脚本交放到一个共享的脚本服务器上,并交付给一个专人-小赵去负责维护运行自动化测试。小赵拿到脚本后,试图在机房的一台崭新的服务器上运行这些脚本,但是结果十分令人沮丧,所有的脚本刚启动,就失败了。51Testing软件测试网 XiJn:`#d
      小赵立即通知老李和老王来查看脚本问题,但不凑巧的是,老李上个星期已离职,老王检查了他自己的脚本,找出了问题所在,原因是老王和小赵的主机系统环境不同,前者为windows XP系统,而后者则为Windows 2003.两个系统下的应用程序的默认安装路径是不一样的,导致启动失败而面对老李的脚本,老王无计可施,因为老李的脚本的风格和结构完全和他的不一样。不过幸好,还有小李在,小李费了九牛二虎之力,把“师傅”的脚本搞明白,修改了一段代码之后,脚本总算可以运行了。51Testing软件测试网%jS8J5fN ca$W6Lq
      公司领导在听小赵汇报这个事情之后,意识到脚本的维护需要相关的注释和文档。于是安排小李给原先的脚本代码都加上不少于20%的注释。51Testing软件测试网b TA-D"g H8I[
     但似乎噩梦还没有结束,小赵在维护运行的过程中,又发现了几个致命的问题。51Testing软件测试网1ihaC C
(1).有时在实际运行中,被测软件已经出现了问题,报出了“因故障暂时不能登陆”的错误,而脚本却视而不见,最后的结果还是成功状态。
1Hfy0^be(q'SV0(2). 老王和老李的自动化运行产生的结果报告格式是不一样的,在有失败的情况下,小赵无法确认这是环境问题而需要重新运行一次脚本,还是真正的软件bug,他只能让小李和老王来查看结果并进行诊断。
'nd X1B xN(j0(3) 公司的产品有一个新功能需要自动化测试,这个功能是老李和老王的脚本都要调用的。看样子,把这个新功能的自动化测试脚本作为一个公共库文件应该是最合适的。但是很糟糕的是这个库文件根本无法做到共享,因为老王和老李对库文件的引用接口是完全不一样的!51Testing软件测试网%Ej:C/N%|9ls"T

nr-N8O`H"U-U y'A0这些都是对自动化测试的致命问题。第一个问题直接质疑自动化测试的有效性,第二个问题是有关自动化测试的可维护性,第三个问题则是自动化测试的可扩展性。51Testing软件测试网$[|/L8^6P'h%K g(]
这三个问题综合在一起,就动摇了自动化测试它在项目中本来的作用和意义。而出现这些问题的主要原因就是在一开始的时候,自动化测试项目没有尽早地建立相应的规范体系。

d3DN:p:In051Testing软件测试网JmH"Py\

 1.3.2 规范应该考虑哪些因素51Testing软件测试网.R|9Y zX Lt
规范(standards)是大规模自动化测试实施的一个重要先决条件。通常它也是一个团队自动化测试成熟经验的智慧结晶。它要帮助自动化测试团队建立如下共识。51Testing软件测试网B5_?)\rij[W1Xr
1. 测试工具
\;i5u+U8tUQo(p0市场有很多自动化测试工具,大多是基于录制-回放的。但在实现中,不同的工具有不同的侧重点,要根据项目自身特点来选择合适的工具。
wsJOqi}/[sJ02. 自动化测试脚本库51Testing软件测试网0i r-@4?5k(HmR _ \
自动化测试脚本库的建立原则是每个项目应该有自己的脚本库,并且要保证脚本库里没有冗余的代码。比如我们有一个公共库函数负责创建随机数和随机字符串,那么这样的公共库函数有且只能存在一个。而且,在扩展函数库的时候,不应该影响到已有脚本正常调用函数库。
pl5XI/P5X1y(C:B6c8?03. 日志
9["ASc1g Y+_(s8E0定义一个共用的日志策略对自动化测试维护来说非常有帮助,它可以让团队的每个成员都能理解和调试自动化产生的报告。策略要明确一些信息:51Testing软件测试网\BZ H]1}(Y0C7|
1)日志采用什么格式?是文本还是html,还是xml?51Testing软件测试网.b:bBz.e7JMh
2)日志存储在什么地方?是放在文件系统里,还是数据库
;O`8]+] P03)自动化测试人员在什么情况下写日志?日志里包含哪些信息?51Testing软件测试网b1y"o$|m
4. 错误处理51Testing软件测试网 }#Ux9A/ml@
当脚本遇到错误的时候,应该怎样处理?应该立即退出脚本运行,还是清除环境再运行一次?如果比较复杂的话,就应该考虑建立一个错误等级制度,以使脚本遇到不同等级的错误时,做出不同的处理。
w#Q)T7wp+p"n~]#{2e05. 运行环境
iq2g!eSU-R/ve0要明确定义脚本运行的环境要求,比如
-^9R,D Fi&Uf-A01)操作系统信息,是XP还是visita51Testing软件测试网A'wU2~)Y"T%_2K
2)被测软件的安装情况51Testing软件测试网j'Wn6t7a5o
3)是否需要其他产品的安装,比如测试outlook插件的前提是必须先安装outlook。
.yx1CG9l)xJ0w[1|06. 与框架的接口
P Y9W {$P v#O5wGG0框架应该脚本传递什么样的参数信息?采用什么方式传递?这些信息包括被测系统的地址,需要运行的测试集合,测试账户,密码等等。
"g5M6HXx2] kW+I'j$G07. 环境初始化及清除工作51Testing软件测试网;@p r e8w3A(x
应该定义每个脚本在开始运行之前都应该做环境预检测和初始化操作,在结束的时候做环境的清除工作。每个脚本都要做这些操作,因此以公共函数库的方式提供给脚本开发者更合适些。51Testing软件测试网5G6c/^l;Wni;sN
8. 编码风格
_jI M1R0编码风格包括变量命名规范,函数定义,注释率等等

A.D%` b*\,a#@0

Re+UAL7x2Gi[051Testing软件测试网ki7qB1gIS,I1m
1.3.3 如何有效地推行自动化测试规范
h?J MKr,A7Y0建立自动化测试规范是自动化测试实施的一个重要环节,但同时要注意的是,规范建立了,不一定代表它就会有效地被遵循。因此,在推行自动化测试规范的时候要注意以下几个因素51Testing软件测试网[;hU!}&X@'@
1.团队充分参与51Testing软件测试网 X5x;Fme9C"s)H
在建立规范的时候,一定确保团队中的每个成员都要有效地参与,并最终达成共识。51Testing软件测试网"H%U7H [iT'?:k
2.文档化
-iW/X/v,d^d0M0规范要文档化。一份好的文档会大大提高组内成员的交流效率。
EIK5Lg%? r3a03. 评审51Testing软件测试网J0xz$pEG$Y y#F
在规范执行的过程中,还应该建立定期评审的机制,以确认规范被切实地执行。

'm"G_-N3ztp8r`}0

TAG:

carol2000的个人空间 引用 删除 carol2000   /   2011-07-13 16:23:12
5
 

评分:0

我来说两句

Open Toolbar