FastPoint [链接]

本文版权属于 王东刚 Fastpoint,允许私人转载但需保留本文链接和图标
以前说软件测试是个体力活,做了几年回过头总结总结,发现软件测试既是体力活又是高技术含量活,同时还涉及了大量的心理学、经济学领域的知识。这几年和我合作的大部分测试人员都是属于外向性格的,所以我们这类人在接手新测试项目的时候总是会非常乐观,基于软件外表匆忙打单,而忘了分析我们是否真的有把握执行完所有的测试。有一次在心力教育上课的时候,我跟学生说Windows自带的记事本功能是否简单?当时很多学生回答的非常快速:“简单!”,而后我特意留了家庭作业让他们回去从测试需求、测试用例到测试执行用一个晚上的时间完成,结果第二天我上班一打开MSN,很多学生都给我留言说:“老师,我实在吃不消了,这个记事本实在......太复杂了!”。
其实有测试经验的人都知道这样的一个道理,即使是一个非常简单的软件,考虑它的输入输出可能会达到数百种甚至数千、数万组合,所以100%测试是根本不可能也不切和实际情况的,如果有谁强行这么干,我可以告诉你你的资金根本不足以支付到这个软件所有测试执行完毕,想想“波斯的棋盘”的例子吧。既然大家都知道为什么还会经常出现测试资源紧张,任务无法在指定时间内完成的情况?我觉得有必要在讨论测试之前,首先分析一下软件测试的心理活动。
2004年在亚信的时候曾经经历过这么一段测试时光,我经手的项目非常多,并且这些项目的测试通过率要求的非常苛刻,也就是说如果经过我手测试的程序在上线后出现了问题,那么会直接影响公司在整个软件上的经济收益。开始我总是这么设定我的测试思路“只要软件能根据设计设定方式执行就可以了”,实际结果是每次我测试完的程序只要一上线就会出现这样、那样的问题,更严重的是公司领导开始找我谈话,从某种意义上讲也就是怀疑我个人能力问题了。正所谓“人争一口气,佛争一炷香”,我觉得我个人在测试思路上“保守”了,所以说这个时候可以实行软件测试的特殊规则:“有罪推定”,所有的程序只要从我这里过,不管是靠文档或者是靠经验,哪怕是靠直觉,只要我觉得有问题我就测试,没想到这样做的效果非常好,上线后的出错率显著下降到一个非常低的水平。
人在心理上有种“心理依赖倾向”,如果我们一开始就认为这个程序是稳定的,并且在测试过程中才开始渐渐“熟悉”被测试软件,那么这种依赖倾向会强制关闭我们的灵敏感觉,用一种非常粗放的操作过滤软件,那么后果是非常严重的。什么是“强制关闭灵敏感觉”?可以这样理解,有效的测试非常依赖于测试数据和执行步骤,当你在测试前就产生了软件稳定心理倾向的时候,你的思维会自动回避掉一些特殊的、敏感的测试数据,甚至让你在不知不觉中跳过一步或者多步操作动作,所以为了避免这些问题,请积极地实行“有罪推定”规则吧。
从经济意义上讲,实行“有罪推定”规则也是非常积极的,首先它表现为:测试规则积累。职业的测试人员应该经常积累自己的测试规则和被测试软件的测试规则。一般来说所有事物的初次运作所消耗的资源是最高的,我以前经常被我父母告诫:不要频繁的开关电视机非常耗电,虽然我没有得到最终的科学解释,但是从后来的生活实践中确实是如此。如果你经常执行“有罪推定”规则,那么千万要记住一条经济名词“成本平分”,随着你的规则越来越多,你的执行成本和再次构造规则成本就会逐渐下降。如果这个时候你甚至有心在全公司内共享你的知识库,那么我觉得你的管理层应该给你个大红包,当然这个管理层要看过这篇文章,甚至深知人才管理和成本控制的奥秘。
对于《软件测试心理与经济效益》的第一篇文章,所有的主题在心理上总结为“有罪推定”,经济表现为“成本平分”。
[ 此贴被Fastpoint在2006-02-14 14:34重新编辑 ]