拥抱变化,不断学习,时刻归零

为什么做测试的人喜欢搞自动化?(转)

上一篇 / 下一篇  2012-01-30 11:51:17

作者: webmaster 

第一,自尊心。计算机科班出身的人都喜欢作开发(Dev)。做测试工作经常是身不由己,可是测试工作很多时间不需要编程,于是做测试的人想方设法写些程序,以显示自己也会编程。结果往往是欲罢不能,测试自动化程序越写越多,越写越复杂。后面我会谈谈测试自动化框架复杂的代价。

  第二,为了出成绩。很多测试组为了向管理层展示成绩,往往要拿出例如测试自动化达到80%,程序覆盖率达到90%。要我说,这些都是Bull Shit。就象小平同志说的“实践是检验真理的唯一标准”,我认为在测试中“用户不出问题是检验质量的唯一标准”。自动化做的再多,用户出了问题,也是白搭。另外,一个人就可以做的测试,自动化往往需要两个,三个。倒是解决就业的好方法。

  我对测试自动化的认识也有一个变化的过程。刚刚入行时也是很相信自动化,想方设法写一些从头到尾自动化的框架,觉得自动测试很过瘾。到微软的Portal Media Center组后也是和另外两个人做了一个相当复杂的用户界面的自动测试。其实现在想想,用自动测试发现的问题基本上可以一个人用手工测试完 成,最多写些简单的测试辅助工具就可以完成。有些人可能会说自动化可以为产品的下一个版本节省测试时间。其实Portal Media Center 下一个版本出来时,所有户界面完全变了,80%以上的自动测试程序都需要改动。做完第一个版本,我们三个人全都走掉了。后面来的人往往宁可自己再写一套, 也懒得改以前人的程序。自动化的浪费就是这样造成的。想说服别人用你开发的自动测试框架是很难的,所有人都想另搞一套。

  下面分几点讲讲为什么要放弃对测试自动化的幻想,和怎样进行低成本的有效测试。如果你还不能同意我对测试自动化的看法,可以去微软员工的Blog看看为什么Windows测试组用的WTT测试框架被称作“Waste of Tester Time"。我最基本的观点不是说测试自动化不能测出bug, 而是想问:一个比较复杂的测试自动化框架所造成的人力浪费,值不值得最终的结果?如果不做测试自动化,能不能达到同样的效果。以我的亲身经历,去年我的测 试组两个人对应开发组五个人,项目经理三个人的工作量,去年做了好几个Release,Hotfix只有两三个。我们旁边的测试组七八个人对应五六个 Dev。他们又是自动化,又是搞程序覆盖率,好不热闹,Hotfix 也不少。按一个人的人工成本12万美元,我们组省至少三个人的成本36万美元。

  第一,不要指望自动化能帮你找bug。软件bug和生物的bug很像,测试的规律是bug少的地方bug越少,bug多地方越找越多。做测试自 动化,往往在开发自动化的时候,该发现的bug就发现了。自动化开发完成,再想发现更多bug就很难了。这是无论你怎样跑你的自动化,也不会发现新的 bug。

  第二,不要指望自动化对Regression Test的测试的贡献。软件的特点是如果一次做对了,以后永远不会出错。当程序出现变动时,只要针对变动的部分测试就可以了,以前测过的东西,如果和变动 没有关联就不会出错。相反如果,程序出现很大变化,自动化可能完全不能用了。

  第三,自动化不如测试工具加手工测试。我不建议测试人员作 全面自动化,相反我建议测试人员多做小巧灵活的测试工具。自动化往往需要自动判Pass或Fail。 想想你如果测试用于生成www.microsoft.com的页面的产品,你如何判断页面框架生成的正确?很多东西是动态产生的,你很难确认所有的内容的 正确性。如果你自己用这个产品手工做个页面,用肉眼很容易判断所有相关和不相关的内容生成的正确性。我就是用这个方法在工作中发现了网页上谁也想不到的 bug, 如果用自动化很难在测试阶段发现这个bug。

  第四,软件项目的生命周期就定了自动化的无用。现在很多网络应用项目的生命周期都很短,一个项目从生到死不过两三年。死的定义是项目进入Sustain Engineering维持状态。自动化原来的一个主要目的是使软件测试的未来阶段越来越容易,成本越来越低。可是当一个项目死掉了,自动化还有什么用。而且最新的敏捷开发,软件的要求,程序,接口,界面在不断变化,自动化怎么可能跟得上变化。与其去搞自动化,不如多理解变化,直接测试变化的东西。


TAG:

heaven7253的个人空间 引用 删除 heaven7253   /   2012-02-13 15:10:37
楼主的话 我不是十分赞同

首先  自动化的好处 显而易见
无人值守  高度重复
手动是不能24小时不吃不喝 100%正确重复做事的

再者 自动化的导入和不导入是由成本决定的,不是你测试人员的某个冲动决定,一个产品  测试多少轮基本功能 一个手动成本多大(时间  钱) 还有自动话要运行多少轮才能弥补成本 达到收益?这都是公式算出来的再三 自动化 目前最大的生效点。我只能说 文章里的公司没有一个评估机制,拍脑袋就是决策层?

还有  自动化不能放弃。是的  自动化主要对功能测试生效,但是它也同样在一些非功能的地方生效,自动化是一个工具,是人来用它来方便我们测试的。这个要搞清楚,自动化可以测试稳定性,可以测试压力,性能等,别说你们自动化不能做到哈!要是真做不到 那也是人没用好这个工具!总之 自动化是个工具  是为了方便测试而开发的工具,只有不会利用好这些工具的人。工具是死的  人事活的。
liyf51的个人空间 引用 删除 liyf51   /   2012-02-03 11:34:56
1
vikesgao的个人空间 引用 删除 vikesgao   /   2012-02-01 11:38:30
自动化,也希望自己做点成绩,不过本人都是小公司工作,没全面实行自动化,所以还是赞成博主的观点
天空之城 引用 删除 喝少了想上树   /   2012-01-31 16:18:07
原帖由archonwang于2012-01-30 15:40:51发表
自动化,有条件的就做做看。初期投入和成效几乎没啥性价比。如果没有决心持续坚持做个几年,个人觉得,若.

自动化总比手工上一个档次吧
老A 引用 删除 archonwang   /   2012-01-30 15:40:51
自动化,有条件的就做做看。初期投入和成效几乎没啥性价比。如果没有决心持续坚持做个几年,个人觉得,若非必要,最好还是别碰(特别是系统的功能自动化,做了,改了,再做,再改。如果是项目,实在是太坑爹了)。
 

评分:0

我来说两句

日历

« 2024-04-25  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 17126
  • 日志数: 20
  • 图片数: 2
  • 建立时间: 2011-12-19
  • 更新时间: 2012-12-25

RSS订阅

Open Toolbar