反测试无用论之五:从丑娃娃到沉锚效应

作者:柴阿峰(@柴阿峰

最近看了一条微博,不爽,所以写了这篇博客。原微博如下:

popodai:这几天和微软测试大牛谈解散专职测试人员的问题。得出结论,测试很快会便成一种个人消遣,而不是一个职业。仿造youtest,80%的端到端测试可以像发表微博一样由外围爱好者完成。而剩下的20%由工具和程序员完成即可,不再需要传统意义上的测试团队。

看完以后不禁悲哀,测试不易,随便什么野路子的人聒噪几句,我们就得拼了老命的找各种理由反驳他。当然我这篇博客志不在此,而是接着我之前的话题说。

 

> 从减法到丑娃娃

做过产品的人都知道减法的重要性,而乔布斯最为人称道的不是他有多创新,而是他对垃圾产品和创意说不的勇气。如果从减法的角度我们看开发团队,就会发现:

项目经理很难做减法,因为他要为预算和合同承诺负责;

开发人员很难做减法,他们证明自己价值最简单的方法是,给软件增加功能,同时乐观的认为功能已经开发的很好;

项目经理和开发者对产品的态度,更像是孩子的爹妈:虽然孩子并不完美,但是他们最善于说服自己说孩子是完美的,因为孩子是他们生的。而独立测试人员则有点像孩子的保姆:我见过很多孩子,好看的不好看的,听话的或者调皮的,我喜欢现在这个孩子,但是如果让我说出他的缺点,那我能说出一打。

作为技术团队的负责人,我发现开发人员总是会给自己的孩子找各种借口:比如这孩子昨天还挺好看的,今天你一看突然就丑了;又比如这孩子看上去丑是因为你看的角度不对,你应该保持30度的视线入射并且仰视;而终极借口则是,这次生的就这样了,下次我一定好好生。而好的测试人员则会告诉我:这就是一丑孩子,如果你仔细打量他,你就会发现他比第一眼看上去还要丑,能吓得你晚上睡不着觉。

 

> 从丑娃娃到沉锚效应

至于为什么开发人员不能客观的评价自己成果的好或者坏?为什么爹妈看自己的孩子总是很可爱?其实这个问题不难回答,因为这是人的天性:
比如说,为什么闻自己放的屁感觉不是很臭,而别人的屁总是感觉特别臭?

比如说,为什么自己嘴里有一口痰不会觉得很恶心,但是如果被别人吐一口浓痰可能会恶心的很?

这种心理效应可以用沉锚效应来解释:人对事务做出判断不是因为客观因素,而是会先预订一个基点(也就是锚),然后会不断的寻找信息来强化这个锚。沉锚效应揭示了第一印象和预设立场对人的主观判断造成的影响。

Anchoring effect 沉锚效应

 

关于沉锚效应,心理学家曾经做过多个实验:

比如说让不同的人快速猜测1*2*3*4*5*6*7*8的结果以及8*7*6*5*4*3*2*1的结果。通过统计发现1开头的计算的猜测平均值是512;而8开头的计算的猜测平均值是2250。

比如说心理学家做了多次的模拟推销,A组的起始价格较低,B组的起始价格较高,最终的谈判结果,发现起始价格高的组成交价格也高于起始价格低的。

用沉锚效应来解释屁和丑娃娃的问题,就会发现:人不会觉得自己很恶心,所以自己的屁就不会那么恶心。父母一定爱自己的孩子,所以才不会觉得自己家娃娃丑。

预设立场导致了人在判断问题时会丧失客观性,而开发经理和开发者一样会受到沉锚效应的影响:他们总是倾向于认为自己调试通过的程序是可以正常运行的,自己管理的项目是在正常交付的。至于真的正常吗?我们还得找一个第三方来闻屁!

 

> 从沉锚效应到过程质量和结果质量

有些人和公司提倡的软件质量开发负责制,有点类似于:爹妈要勇于承认自己生的孩子(软件)不如别人家的好看,或者承认这次生的(当前版本)不如上一个好看,或者承认这次怀孕生子纯粹是个杯具,应该十月怀胎再来一次(产品返工或者重构);进而他们提出既然我们知道如何做可以生出漂亮的孩子(各种市面上买得到的开发最佳实践),那我们可以搞一个优生优育的方案(完美开发方案,不少标题中含有敏捷这个词),保证恋爱(产品设计)、饮食(雇最好的人)、xxoo的质量(各种开发过程控制,有站着xxoo的也有坐这xxoo的),并不停的做基因筛查(自动化单元测试),检查发育中孩子的状况,每个步骤都可以让各种专家(各种教练)指导,于是……但是,等等,假如我们投入了这么多,做的每一个步骤都正确,生出来的还是一个丑娃娃,谁来告诉你这个残酷的实事?

测试无用派观点中最扯的一部分就是:如果我们从过程上把控质量,那么结果检验就不那么重要了(甚至有个做单元测试工具的老板说,他这个工具的使命就是代替手工测试人员)。这就好比说,如果我们做了优生优育,那么生出来的都是漂亮孩子——这很扯,随便走到一个幼儿园你就会发现丑孩子遍地都是,就像包含各种各样缺陷的垃圾软件那么多。

甚至于,如同沉锚效应所揭示的那样,一旦我们在开发过程上过度投入,随着我们投入的改进和精力越多,我们的预设立场可能越强烈:过程是先进有效的,所以结果一定是高质量的,所以我们不需要第三方来检测。这实际上更危险——如果精心构建出来的依然是个屁,那总还是要有人告诉你臭的要死。

 

> 为什么外部爱好者测试不能代替专业团队

至于“个人消遣”能不能提供给你真正的信息,我们可以想这样一个场景,我遇到邻居家的孩子,如果孩子爹妈问我:我家娃娃好看吗?我大概会盯着那个丑到爆的孩子,微笑着说:你家孩子挺可爱的,挺有特点的。然后在打冷战之前离开,回家抱着真正漂亮的孩子一起玩游戏——这很容易理解,孩子不是我生的,至于好不好看跟我自己有什么关系?既然目的是为了消遣,那我也没必要得罪邻居。

从心理学角度来说,一旦我们把测试的职责让渡到一个和开发成果关系不大的群体中,我们就会发现,人家根本不在乎,也就是,从利益上爱好者就不会设置测试产品的“锚”——假设产品是有错误的。

对于用户来说,他们使用软件的锚是——既然产品发布给我,那应该就能用。所以如果用户发现了软件的缺陷,他们首先会归结于自己使用方式不对,然后找其他的方法绕过去,而不管这种方式从根本上是否合理。

最典型的例子就是:应对Windows操作系统会随着运行时间越来越缓慢这个缺陷,很多用户给出的方案都是重启电脑,而非给微软提bug。
而从根本上说,这是一个缺陷,我用mac os X,经常几十个小时不重启,这才是正确的软件,不是吗?

 

> 不排除有素质极高的父母(开发者)

不排除有些人天生就是计生干部,懂优生优育(懂开发),也了解孩子长相的评价标准(懂测试),多年的生娃娃经验还锻炼了他们超然物外的心理素质(敢于自我否定和承担责任):你告诉他娃娃很丑,他不是生气而是兴奋“哪里难看,为什么难看,下次我们一定想办法搞漂亮”。这样的父母有,但是太少!放眼国内,绝大部分爹妈还在生头几胎(经验不足,不少刚毕业的),紧张兴奋,夜夜鏖战(项目时间紧),生怕不能按时生娃以交代父母公婆(怕项目延期),你要是跟他说孩子丑,恨不得抡起胳膊给你一肘子。

所以,不排除有些开发者,开发团队的测试可以搞得比别人好,但是绝大部分团队做不到。比如,就懂测试这一点,有几个人能说出根据iso/iec 9126,评估软件产品的质量,除了功能是否正常之外,还有哪些特性需要满足?估计大部分人不知道,但是我估计豆瓣的段念和亚马逊的陈皓应该知道。

啰嗦半天,就一句话,测试的目的除了发现缺陷,还包括提供质量信息。从第二个目的上看,我找不出比独立测试团队更好的执行者:总得有人站出来说,其实你生了个丑娃娃。

 

反测试无用论——开篇:邻村老张的故事

反测试无用论之二:帮你接盘子的人

反测试无用论之三:牛逼公司的模式就一定对吗?

反测试无用论之四:不做庸俗测试人员

 

注:本文是柴阿峰撰写并提交给伯乐在线发表,如果其他机构需转载必须经过原作者的书面或邮件认可。请发邮件至chaiafeng#163.com或者私信@柴阿峰 与作者联系。

 

1 收藏 4 评论

关于作者:柴阿峰

柴阿峰:比搞技术的相声说的好,比说相声的测试懂得多。反技术教条主义,反测试无用论。专注于开源测试技术、半自动化测试、测试架构、测试方法等的研究。(新浪微博:@柴阿峰 ,邮箱:chaiafeng#163.com) 个人主页 · 我的文章

相关文章

可能感兴趣的话题



直接登录
最新评论
  • 文章不错,但Windows需要重启的例子举得不好。。。我一个月才重启一次。。。你经常需要重启要查一下是否安装和运行了什么占资源的第三方软件。。。

    • 写代码的人是要常常重启机器的,起码是每天重启

      因为Eclipse、Visual Studio之类的开发工具太吃内存,会造成系统不稳定

    • 哈哈,你是微软的吧?其实微软的测试做得很好,最新版本的os也稳定多了不再需要重启。

  • “我遇到邻居家的孩子,如果孩子爹妈问我:我家娃娃好看吗?我大概会盯着那个丑到爆的孩子,微笑着说:你家孩子挺可爱的,挺有特点的。”

    这个例子有问题,这里的你相当于路人甲的角色,这就像问匆匆看眼软件的人这个软件怎么样一样。通常他们不会给出意见和建议。

    与用户和软件相比,最好换成老师和孩子。然后就会发现老师会给出中肯的意见的。

    软件测试永远不会消失。单独的测试团队可能消失,会慢慢地融入到开发的工程中。

跳到底部
返回顶部