[测试]那些所谓的自动化啊

发表于:2011-9-21 10:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:CharlesCui    来源:51Testing软件测试网采编

分享:

  b)b/s产品:

  知道watir或者watix么?知道selenium吗?甚至知道LoadRunner也行啊,道理都是相通。

  再不行,知道如何attach一个浏览器进程,然后获得它的JavaScript引擎的console么?

  如果知道这些,那也就了解一个b/s产品做自动化测试的大概原理了。

  b/s做自动化测试比c/s更通用点,因为浏览器上的按钮都比较好识别,工具以watir为例,

  Watir的IE对象是通过WIN32OLE获得InternetExplorer。Application这个Windows系统对象,通过起内置的各种方法比如打开一个页面,访问一个url,就可以控制浏览器的行为。而InternetExplorer。Application是怎么对一个页面操作的,这个我不清楚,只知道它提供这些接口,而Watir又包了一层接口给使用者。

  再看一下FireWatir的FireFox对象,它和IE对象不同, FireFox对象不是通过WIN32OLE方法得到系统浏览器对象的,而是通过在FireFox浏览器上安装jssh的插件,获得浏览器的JavaScript引擎的访问权,从而通过当前运行页面的JavaScript来控制页面动作的。

  从FireFox发散出去,我猜InternetExplorer.Application对外开放的接口也可能就是通过InternetExplorer.Application封装了它的JavaScript引擎来实现的。

  我们知道了b/s产品自动化执行的原理后,我们就可以知道,只要JavaScript能处理的动作,我们都可以通过自动化来模拟。

  但PM或者要求测试进行自动化的人,他一定要知道哪些是JavaScript做不来的,比如Flash,比如SilverLight,这些产品目前还没有直接开放对象的接口给JavaScript,这就不能做自动化测试。

  3、为啥要自动化测试?

  这个问题很简单,因为要提高效率,降低出错率,减少重复劳动,降低成本。

  提高效率:代码执行测试比人工执行更快。

  降低出错率:计算机的行为比人类的行为更单一,多次执行很少会出现不同的结果。

  减少重复劳动:自动化测试主要是回归测试,就是将以往主要的测试脚本或者叫回归测试脚本跑一边,员工对重复劳动是没有兴趣的,而计算机不会有抵触情绪。

  降低成本:自动化测试的时间可以在员工下班之后,而如果要求员工在下班后还工作那是不人性不和谐的。

  4、啥时候不要自动化?

  有的东西可测试有的东西不可测试,把不可测试变成可测试是需要成本的,自动化测试的代码更多的依赖于界面的UI和文案,而UI和文案是多变的,所以维护自动化测试的代码也是需要成本的。

  如果我们把一个手工测试人员当作一个进程(因为一台电脑上的b/s或者c/s产品正常的时候只会有一个用户在使用),但自动化测试要求更快更高效率的时候,会希望自动化测试用例能够并发进行,也就是同时需要多台自动化测试的客户端,这些客户端是需要调度和管理的,这就还需要一个管理平台,同时负责测试环境的维护,开发代码的及时更新与部署,以及自动化测试数据的自动生成,这些也都要成本的。

  而自动化测试带来的收益是否会大于这个成本是需要好好考虑的,甚至是需要找一两个项目去实践的。

  就我个人来看,一个中小公司,人肉测试的成本要小于自动化测试的成本,尤其是在这个小行业还没有被重视和深入挖掘的现在。

  我了解过一些很大的公司的一些自动化测试框架,这些东西听起来真得很吓人,但如果你自己问下去,他们说不出个所以然,其中绝大多数都是用了这个东东那个东东,然后整体包装一下,底层实现的细节他们都不了解,并没有掌握核心技术,只掌握工具的使用是肤浅的,正应了那句话“无他,唯手熟耳”。

22/2<12
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号