Jun'uary
Jan'uary » 日志 » End-to-End test
End-to-End test
Jan 发表于 2006-10-23 12:50:18
最近在搞一些关于网站验收测试(功能测试,黑盒测试)的东西。
Selenium是ThoughtWoks捣鼓出来的东西,口碑比较好,说的人多。ThoughtWorks是个比较有意思的公司,挺阳春白雪的那种,其实搞软件工程的谁不阳春白雪呢,那玩意下里巴人不了,离得实在太远。ThoughtWorks中国的办公地点放在西安,也不知道为什么,够独特的,或许是觉得偏安一隅才能专心搞开发吧,反正TW不想大多数企业一样和商业环境联系的那么紧密。去年在班加罗尔培训的时候还在街头碰到了同在那里培训的TW新员工,呵呵,扯远了。
Selenium的优点主要在于跨浏览器跨平台。支持的OS多,Win/Linux都能跑,支持的浏览器也多。正因为它直接用真实的浏览器来模拟用户行为,所以得到的结果比较有意义。使用上也挺简单,有一套自己的简单行为(action, assertion)定义,加上js和html的语法就能用来模拟用户的行为了。在firefox还有个插件叫做Selenium Recorder能自动record你的行为然后生成脚本,你都不用自己写代码。
Canoo Webtest是另外一套开源且免费的功能测试工具,对这个东西暂时还没有什么深入了解。互联网上能找到的关于它的资料不多,国内的就更少了,大部分人的眼光都被Selenium吸引了。Webtest是用java来写testcase的,所以程序员更容易上手。TheServerSide上有人说Webtest更适合test-driven的开发,我想了想,没想通为什么,不知道哪位能告诉我为什么。
还有一个叫做Sahi的东西,关注的人就更少了。这个东西是印度人做的,它的网站上有一个很直观的flash demo。也是通过js来模拟用户的行为,整个工具里面包括了一个recorder和一个player,感觉挺方便的。从原理上看似乎和Selenium没什么区别,这两者的能力最终都可以归结为js的能力:只要js能做的,js能模拟出来的用户行为,它们就能模拟。因为没有具体用过所以也说不出更多的东西了,反正看demo的感觉是不错。
其实就test-driven development(验收测试并不代表东西已经做好了在等待验收)来说,这三个东西感觉都没什么太大用处。在产品根本没有完成甚至只有一个spec的时候,要用这几种方法来写一个testcase不仅麻烦,而且难 - 因为你要把自己放到程序员实现的环境中去考虑。比如你不能说假定这个对话框叫做input1,input1里面填xxx什么,你一定要定义好这个对话框叫做make_name_input,让后告诉实现网页的人,这个对话框只能叫make_name_input,不能你自己乱起名字,不然testcase以后根本不可能跑起来。
最后结论是,网页布局,字体,颜色这些东西,还没有什么解决方案(本来想写还没有什么很好的解决方案),基本依靠人肉。对于page flow, special business rule, tracking和穷举数据的测试,以上三种东东都能漂亮解决。
Selenium是ThoughtWoks捣鼓出来的东西,口碑比较好,说的人多。ThoughtWorks是个比较有意思的公司,挺阳春白雪的那种,其实搞软件工程的谁不阳春白雪呢,那玩意下里巴人不了,离得实在太远。ThoughtWorks中国的办公地点放在西安,也不知道为什么,够独特的,或许是觉得偏安一隅才能专心搞开发吧,反正TW不想大多数企业一样和商业环境联系的那么紧密。去年在班加罗尔培训的时候还在街头碰到了同在那里培训的TW新员工,呵呵,扯远了。
Selenium的优点主要在于跨浏览器跨平台。支持的OS多,Win/Linux都能跑,支持的浏览器也多。正因为它直接用真实的浏览器来模拟用户行为,所以得到的结果比较有意义。使用上也挺简单,有一套自己的简单行为(action, assertion)定义,加上js和html的语法就能用来模拟用户的行为了。在firefox还有个插件叫做Selenium Recorder能自动record你的行为然后生成脚本,你都不用自己写代码。
Canoo Webtest是另外一套开源且免费的功能测试工具,对这个东西暂时还没有什么深入了解。互联网上能找到的关于它的资料不多,国内的就更少了,大部分人的眼光都被Selenium吸引了。Webtest是用java来写testcase的,所以程序员更容易上手。TheServerSide上有人说Webtest更适合test-driven的开发,我想了想,没想通为什么,不知道哪位能告诉我为什么。
还有一个叫做Sahi的东西,关注的人就更少了。这个东西是印度人做的,它的网站上有一个很直观的flash demo。也是通过js来模拟用户的行为,整个工具里面包括了一个recorder和一个player,感觉挺方便的。从原理上看似乎和Selenium没什么区别,这两者的能力最终都可以归结为js的能力:只要js能做的,js能模拟出来的用户行为,它们就能模拟。因为没有具体用过所以也说不出更多的东西了,反正看demo的感觉是不错。
其实就test-driven development(验收测试并不代表东西已经做好了在等待验收)来说,这三个东西感觉都没什么太大用处。在产品根本没有完成甚至只有一个spec的时候,要用这几种方法来写一个testcase不仅麻烦,而且难 - 因为你要把自己放到程序员实现的环境中去考虑。比如你不能说假定这个对话框叫做input1,input1里面填xxx什么,你一定要定义好这个对话框叫做make_name_input,让后告诉实现网页的人,这个对话框只能叫make_name_input,不能你自己乱起名字,不然testcase以后根本不可能跑起来。
最后结论是,网页布局,字体,颜色这些东西,还没有什么解决方案(本来想写还没有什么很好的解决方案),基本依靠人肉。对于page flow, special business rule, tracking和穷举数据的测试,以上三种东东都能漂亮解决。
相关日志:
- » TEST!!
- » MJ
- » 我们的世界因为有她(西单女孩)而美丽!
- » 第一篇test
- » test
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
最新评论
-
2006-10-23 20:04:33 http://octalxia.blogspot.com
不是说告别技术版吗
-
2006-10-23 23:11:46
关于类似recorder和player方式的功能性能自动化测试看过一些资料,不过您说得我还是不太懂~我只走最主流的老土路线~~><~~
-
2006-10-24 10:34:35
这文章基本没什么技术含量...
-
2006-10-24 10:35:26
你做的东西和我不一样,不懂是正常的...
-
2006-10-24 13:00:04
白盒我不知道,黑盒还是知道些的,只是您是牛人走高雅路线,我是随大流
