加入收藏 | 设为首页 | Life家族 | SCMLife | RMLife | PMLife | SQALife | TESTLife | 企业VIP专区 | 中文化荣誉殿堂
 
发新话题
打印

[原创] 软件测试之独孤九剑( 此文章被查看:14619次,被回复:195篇!! )

本主题由 懂你 于 2008-7-27 17:29 置顶
期待哈,写的真不错,很有感触,,

嘿嘿
偶也 也是个武侠狂,,

© 本文为 hlearning 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

回复 89# 的帖子

实实在在的学习了一把这个软件。

© 本文为 Quest 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

我不会再继续深入的介绍QTP这个软件了,因为涉及到太多的内容了,我们还是会把关注点集中到他们使用QTP出现的问题上面
,具体应用的方法将不是本书的介绍范围。

© 本文为 aries_duan 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 aries_duan 于 2008-8-8 13:37 发表
我不会再继续深入的介绍QTP这个软件了,因为涉及到太多的内容了,我们还是会把关注点集中到他们使用QTP出现的问题上面
,具体应用的方法将不是本书的介绍范围。
赞同aries_duan的意见,不宜过多去介绍某个软件,还是以故事为主,穿插软件解决具体问题的办法为辅。

© 本文为 懂你 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
优惠购买Rational,Telelogic,Hansky产品,企业VIP服务、实施
VIP服务电话:13581809377

TOP

可是岳灵珊和仪琳的测试工具引入没有收到令狐冲他们那样的效果,反而因为测试效率降低了,受到了王经理的批评。仪琳更是受了委屈,哭了好几次。田伯光看到仪琳挨训时可怜的样子,心里着急可又无计可施。情急之下,晚上一个人跑到了岳灵珊她们的宿舍,想来帮帮忙。岳灵珊礼貌的请田伯光进了宿舍,仪琳看到田伯光进来也点头向他致意。田伯光直接开门见山,“其实这次你们项目引入自动化测试并不顺利是有原因的。主要是令狐冲这个急皮猴子,还没把东西完全的摸透就冒冒然的告诉了你们。自动化测试的确是个好技术,但是并不是对每一个项目都合适的。你们两个目前所做的测试工作恰好是不适合使用工具的阶段。想想看,你们这周的时间主要花在什么方面了?”
“一开始主要是对工具的熟悉。因为工具本身使用起来不太困难,没两天基本的操作就全掌握了,但是我们最大的问题就出现在录制了大量的脚本,但是却经常出现奇奇怪怪的错误,我们也分不清楚是程序出了问题,还是我们录制脚本出了问题。”岳灵珊到现在还有些弄不清楚状况。
“QTP虽然是一个实用性非常强的测试工具,但是也有它的局限性。它对于dot net和java开发的程序,需要安装独立的插件才能正常识别。你们测试的那部分代码有些地方就是用dot net实现的控件,你们的问题就出现在无法正常识别的那些控件上面。其实这也算不上是QTP的缺点,因为那些控件是需要付费获得的,只能说是HP公司的商业手段影响了你们的应用。”
“不仅仅是这个问题。我测试的那个模块是web应用程序,应该不会出现识别不了的问题是吧。可是我的那个模块的界面元素很不稳定,这个版本的页面元素,到了下一个版本就换了一个名称了,弄得我老得重新录制脚本。本来想节省时间的,现在却浪费了好多时间。”仪琳也一肚子的怨气。
“你说的情况是另外一种情况,GUI不稳定。我们的自动化测试脚本依据的就是界面中的各个元素,通过对界面元素的操作来模拟用户的行为。当界面元素不稳定的时候,我们就会发现脚本的维护量会非常的大。坦率的说,这个阶段尚不适合采用自动化测试。”田伯光显然早已经做好了功课,对情况了如指掌。
“这个模块已经开发好久了,现在的界面还是改来改去的。难道就真的没有办法在这个阶段实施自动化测试了?那自动化测试岂不是局限性太大了?”仪琳有点不甘心。
“这倒也不是,通过一些高级脚本的编写技术,可以降低脚本的维护量,从而达到能实现自动化测试的目的。谈到这,我们得先从自动化测试框架技术讲起。”田伯光看到仪琳不错眼神的看着他,心头一阵狂喜。
“自动化测试框架技术,是不是什么关键字驱动?令狐冲说是市场噱头,教我们不用理会的。”岳灵珊有点不高兴,嘟起了嘴。
“令狐这个臭小子。”田伯光心中暗道。“他说的有些偏颇,自动化测试框架其实是自动化测试工具设计的一个整体思路和构想,就像我们建房子所设计的蓝图和框架结构一样,当然可以拿到市场上去作为市场宣传的工具,但是并非只是市场的噱头没有实际意义。”在两位美眉面前,还是得给令狐冲留点面子。

“一个设计良好的自动化测试框架,可以帮助我们更好的进行自动化脚本的设计。你们刚才所谈的关键字驱动,就是一种目前流行的自动化测试框架。关键字驱动是通过将windows中的各种对象和操作进行抽象,作为自动化测试程序的内置对象。在测试脚本中,以这种对象的形式记录用户的操作。我们来看一个例子。Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebTable("RETURN").ChildItem(3, 2, "WebElement", 0)。这是一个web程序的一个对象在关键字驱动框架中的表现。”
Browser("Welcome: Mercury Tours")
Page("Select a Flight: Mercury").
WebTable("RETURN")
ChildItem(3, 2, "WebElement", 0)
指定浏览器访问的web网站
指定所访问的页面
指定Web中的某一表格
指定表格中的元素



“你们经常遇到的问题是什么?”田伯光故意要逗仪琳说话。
“我们最常见的问题就是,第一次测试的时候,某表格变成四个列了,而原来是按照三个列进行的录制,列的顺序也会经常发生变化。”仪琳丝毫没有觉察出田伯光在故意和他搭讪。
“我知道了。现在我们的脚本不需要重新录制了,只需要将最后的childitem的参数进行相应的修改就可以了。但是…如果我有很多的对象都被改变了,或者我多次使用的一个对象被改变了,那我的修改岂不是工作量很大?”岳灵珊的领悟能力比仪琳快了一线。
“QTP提供的对象仓库技术可以帮助我们解决对象维护的工作量。我们只需要在对象仓库中对相应的对象进行维护,脚本中所有的使用该对象的地方都会同步进行修改了。”田伯光对岳灵珊的反应有点吃惊,在他看来,所有的MM应该只是关心漂亮的衣服,不应该对软件有如此高的天赋。
“呵呵,这样一来,我们工作的效率就能大幅提高了。田工,真是多谢你了。”仪琳冲田伯光甜甜的一笑。虽然不能一笑倾城,但是起码倾了田情圣。田伯光恍恍惚惚的回到了宿舍。

© 本文为 aries_duan 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

回复 95# 的帖子

这一节把仪琳做软件测试最大的优势表露出来了,能够让高手主动传授技术,可是不一般啊。

这节描写的很好,把什么场合该用、什么场合不该用自动化测试描写的很清楚。学习哈。

© 本文为 懂你 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
优惠购买Rational,Telelogic,Hansky产品,企业VIP服务、实施
VIP服务电话:13581809377

TOP

看来田伯光的指点起到了作用,这两天仪琳对他再也不是不理不睬了,每次见面都会和田伯光热情的打招呼。田伯光这几天仿佛生活在天堂里,心情也是好的不得了,总是抓着令狐冲问这问那。令狐冲这几天已经连续回答了70多遍“仪琳还没有男朋友”这类的问题。当田伯光正准备问第80遍的时候,段誉一脸倦意的回到了宿舍。这几天,段誉的小组正在进行最后的验收测试。其中段誉所要负责的是一个需要凌晨3点钟开始运行的功能,由于需要和国外的公共服务器发生功能同步,所以不能采用修改系统时间的方式模拟环境测试。可怜的段誉只得每天3点钟爬起来去运行测试用例。几天下来,段誉明显瘦了一圈了,黑眼圈和国宝熊猫也可以媲美了。到了宿舍,段誉见到两人悠闲的躺着聊天,不由得向这两个人诉起苦来了。
“这是什么工作呀?起得比鸡还早,干的比狗还累,这吃的比猪还差!真不是人过的日子。田工,你也是这么熬过来的吗?”
“我可没你这么笨。我田伯光可是号称福威集团第一帅哥,夜生活如此丰富多彩,怎么能浪费大好时光在工作上呢?”
“那可能就是我命苦了,你们都没有摊上这样的测试任务呀。”段誉长叹一口气。
“谁说的。福威集团的业务在全世界都有,服务器也是分布在不同的地区,而进行同步的时间更是千奇百怪。当然我也会摊上这样的测试任务啦。不过呢,我不会像某人一样傻傻的等到凌晨三点钟手动开始运行测试。人和动物最大的区别是什么呀?就是会制作和使用工具。”田伯光悠闲地把手中的一粒花生米抛到了嘴里,对段誉和令狐冲,他可没对待仪琳那样的耐心。
段誉听说田伯光有办法解决这个问题,也顾不得田伯光的挖苦,一下子窜到田伯光面前“快来教教我,怎么解决这个问题?”
田伯光没搭理段誉,直接从床上坐起来,往门外就走,边走边说:“今天好饿呀,去吃点什么呢?食堂的菜都吃腻了….”段誉赶紧抓起钱包,亦步亦趋的跟了出去。

酒足饭饱后的田伯光心情挺不错的。刚回到宿舍,发现令狐冲早就把测试环境给准备好了。段誉费了一顿饭的功夫,终于求得田伯光传授独门秘籍,没想到令狐冲坐得渔人之利,只需在旁边静静的做着,就一样能学到田伯光多年研究出来的测试技术。令狐冲向段誉眨眨眼,段誉也只能无奈的笑笑。
田伯光田大师,起码在此刻田伯光自己是这么认为的,在打了493个饱嗝之后,终于开始授课了:“自动化测试工具,在这种需要定时运行的环境下面,才能真正显示出自己作用。毕竟人不能像机器一样24小时待命,另外从精确度上来看,手工的也完全无法和自动运行相比。所以作为自动化测试工具,是一定会考虑自动运行这方面的功能的。QTP也为此专门保留了这样的一套接口,让测试人员开发可以自动运行的脚本。”
“只要我们安装了QTP,就会在安装程序的bin目录下发现QTObjectModel.dll文件。我们能通过VBS,VC++等语言编写代码通过这个文件来调用QTP的各项功能。可以这么说,QTP实现了一个自动化的对象模型,来为从外部操作自动化测试脚本提供了方便。我们先来看一下QTP的对象模型。”

“Application对象是对象树中最顶层的元素,Test作为application的子结点,是一个测试对象。在代码中,实例化该对象,并对其进行操作,就能实现对其代表的自动化测试脚本的操纵。Test中包含的Run方法,就是起到运行该测试脚本的作用了。看下这段代码:”

1:dim app

2:set app=CreateObject("QuickTest.Application")
3:app.launch
4:app.Visible = True
5:app.open "F:\doc\QTPTest\first\"
6:Set qtTest = app.Test

7:qtTest.Run

“这段代码就可以实现自动运行某段脚本的功能,这段脚本是用VBScript编写的,如果你熟悉C++的话,也可以用VC++来编写。不过我喜欢使用VBS这种轻量级的脚本。第2、3句就是创建了一个application对象并在内存中加载该对象。但是仅仅运行到这阶段,现在的界面上我们看不到QTP的主程序,因为他们仅仅在内存中进行加载,还没有显示出来,所以需要第4句,将QTP的主程序显示到前端桌面。”
“第五句我知道什么意思了,就是让QTP加载相应的自动化测试脚本,对吧!”令狐冲又在旁边开始插嘴了。
“是的,后面就简单了。创造一个test对象实例,再调用该实例的Run方法,就能轻松实现该自动化测试脚本的运行了。”
段誉双击刚才保存的VBS文件,果然QTP自动运行起来,并完整的执行了这个脚本。“可是这并没有完全实现定时运行呀?”段誉还是有点不明白。
“笨。”令狐冲学田伯光拍了段誉的后脑勺。“windows不是提供了计划任务吗?我们只需设置该计划任务在凌晨三点自动运行这段脚本不就行了?”
                “没错。但是还有更好的方法,QC也提供了自动运行脚本的接口,不过你们目前还没接触到这个工具,所以就不多说了。关于QTP对象模型,还有很多应用,比如说对测试结果的保存,对测试数据的控制等等。这些就需要你们慢慢去摸索了。天色不早了,我也该去享受美好的夜生活了,走了。”田伯光迫不及待的要把这个技术教给仪琳,生怕令狐冲这小子又在两个女生面前显摆的时候,又教错了。

[ 本帖最后由 aries_duan 于 2008-8-12 23:35 编辑 ]

© 本文为 aries_duan 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

回复 95# 的帖子

非常好的内容。尤其是对自动化测试有了更多了解,特别是Gui测试的时候的限制等等。是不是winrunner也有类似的限制呢?不好意思,没有用过呢,只是听说过。

© 本文为 Quest 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

回复 97# 的帖子

所谓更好的办法是什么呢?感觉windows scheduler是个方法,但其他方法是不是也要放到task里面schedule呢?只不过用的方式不一样?

© 本文为 Quest 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

对自动化测试的描述很到位!不错不错:

© 本文为 香蕉231 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

发新话题