金钱- 250
海拔- 452 米
- 积分
- 411
- 精华
- 2
- 帖子
- 77
- UID
- 29841
  
|
发表于 2008-8-11 22:17:41
|显示全部楼层
可是岳灵珊和仪琳的测试工具引入没有收到令狐冲他们那样的效果,反而因为测试效率降低了,受到了王经理的批评。仪琳更是受了委屈,哭了好几次。田伯光看到仪琳挨训时可怜的样子,心里着急可又无计可施。情急之下,晚上一个人跑到了岳灵珊她们的宿舍,想来帮帮忙。岳灵珊礼貌的请田伯光进了宿舍,仪琳看到田伯光进来也点头向他致意。田伯光直接开门见山,“其实这次你们项目引入自动化测试并不顺利是有原因的。主要是令狐冲这个急皮猴子,还没把东西完全的摸透就冒冒然的告诉了你们。自动化测试的确是个好技术,但是并不是对每一个项目都合适的。你们两个目前所做的测试工作恰好是不适合使用工具的阶段。想想看,你们这周的时间主要花在什么方面了?”
5 ?' }' w7 k: b& J* Y“一开始主要是对工具的熟悉。因为工具本身使用起来不太困难,没两天基本的操作就全掌握了,但是我们最大的问题就出现在录制了大量的脚本,但是却经常出现奇奇怪怪的错误,我们也分不清楚是程序出了问题,还是我们录制脚本出了问题。”岳灵珊到现在还有些弄不清楚状况。7 k7 b; A1 k8 D0 l: X
“QTP虽然是一个实用性非常强的测试工具,但是也有它的局限性。它对于dot net和java开发的程序,需要安装独立的插件才能正常识别。你们测试的那部分代码有些地方就是用dot net实现的控件,你们的问题就出现在无法正常识别的那些控件上面。其实这也算不上是QTP的缺点,因为那些控件是需要付费获得的,只能说是HP公司的商业手段影响了你们的应用。”
1 `# A- j: R5 A, J/ @; S0 x0 H- v“不仅仅是这个问题。我测试的那个模块是web应用程序,应该不会出现识别不了的问题是吧。可是我的那个模块的界面元素很不稳定,这个版本的页面元素,到了下一个版本就换了一个名称了,弄得我老得重新录制脚本。本来想节省时间的,现在却浪费了好多时间。”仪琳也一肚子的怨气。
% [$ K9 N& i$ I* {( P+ S“你说的情况是另外一种情况,GUI不稳定。我们的自动化测试脚本依据的就是界面中的各个元素,通过对界面元素的操作来模拟用户的行为。当界面元素不稳定的时候,我们就会发现脚本的维护量会非常的大。坦率的说,这个阶段尚不适合采用自动化测试。”田伯光显然早已经做好了功课,对情况了如指掌。
1 B2 n! B" K2 |: y' i“这个模块已经开发好久了,现在的界面还是改来改去的。难道就真的没有办法在这个阶段实施自动化测试了?那自动化测试岂不是局限性太大了?”仪琳有点不甘心。& _! K) ]& u4 D: C) V& T
“这倒也不是,通过一些高级脚本的编写技术,可以降低脚本的维护量,从而达到能实现自动化测试的目的。谈到这,我们得先从自动化测试框架技术讲起。”田伯光看到仪琳不错眼神的看着他,心头一阵狂喜。; X/ R: y2 w3 a' @
“自动化测试框架技术,是不是什么关键字驱动?令狐冲说是市场噱头,教我们不用理会的。”岳灵珊有点不高兴,嘟起了嘴。4 ?0 T9 D8 J5 f4 [3 q
“令狐这个臭小子。”田伯光心中暗道。“他说的有些偏颇,自动化测试框架其实是自动化测试工具设计的一个整体思路和构想,就像我们建房子所设计的蓝图和框架结构一样,当然可以拿到市场上去作为市场宣传的工具,但是并非只是市场的噱头没有实际意义。”在两位美眉面前,还是得给令狐冲留点面子。
+ B$ D. f4 @& t
( A4 P. M1 ]& S8 e5 f“一个设计良好的自动化测试框架,可以帮助我们更好的进行自动化脚本的设计。你们刚才所谈的关键字驱动,就是一种目前流行的自动化测试框架。关键字驱动是通过将windows中的各种对象和操作进行抽象,作为自动化测试程序的内置对象。在测试脚本中,以这种对象的形式记录用户的操作。我们来看一个例子。Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebTable("RETURN").ChildItem(3, 2, "WebElement", 0)。这是一个web程序的一个对象在关键字驱动框架中的表现。”3 j& V* W6 |7 g: s* A0 m1 d, {: Y1 ?$ N
Browser("Welcome: Mercury Tours")
& T6 M& v5 l1 \ T/ g: ]2 |7 v# N | Page("Select a Flight: Mercury").9 K) t; }1 f, |1 M8 V
| WebTable("RETURN")
1 L; \: H! X% x4 ` | ChildItem(3, 2, "WebElement", 0)9 h) Y L1 L/ i* y. o
| 指定浏览器访问的web网站
: j6 s# z z- p | 指定所访问的页面2 |4 y# u% d' i- X0 N; K+ B( H
| 指定Web中的某一表格- K3 ?/ E, g( e# j/ Z3 W
| 指定表格中的元素& A9 G5 @& s2 L* O6 ?/ x9 e0 a3 |
|
* k& v+ I$ a. L6 k( W: m* N7 P9 t& E" K+ e" {% W8 `& G+ r+ D
8 t: h- K2 C j$ t
“你们经常遇到的问题是什么?”田伯光故意要逗仪琳说话。! G) ], V- O" T$ `3 I1 o
“我们最常见的问题就是,第一次测试的时候,某表格变成四个列了,而原来是按照三个列进行的录制,列的顺序也会经常发生变化。”仪琳丝毫没有觉察出田伯光在故意和他搭讪。
( X& j- o9 J$ X2 \( s2 |: X“我知道了。现在我们的脚本不需要重新录制了,只需要将最后的childitem的参数进行相应的修改就可以了。但是…如果我有很多的对象都被改变了,或者我多次使用的一个对象被改变了,那我的修改岂不是工作量很大?”岳灵珊的领悟能力比仪琳快了一线。5 U$ @6 e' y; t) e1 H- `. h
“QTP提供的对象仓库技术可以帮助我们解决对象维护的工作量。我们只需要在对象仓库中对相应的对象进行维护,脚本中所有的使用该对象的地方都会同步进行修改了。”田伯光对岳灵珊的反应有点吃惊,在他看来,所有的MM应该只是关心漂亮的衣服,不应该对软件有如此高的天赋。& I! _* q. z5 [" y3 l
“呵呵,这样一来,我们工作的效率就能大幅提高了。田工,真是多谢你了。”仪琳冲田伯光甜甜的一笑。虽然不能一笑倾城,但是起码倾了田情圣。田伯光恍恍惚惚的回到了宿舍。 |
|