做测试之前,老师说测试人员就像老中医——一方面,随着经验的丰富,定位问题越来越准;另一方面,越老越吃香。听着老师的忽悠就进了测试一行。
和许多测试同学一样,刚开始测试,就是在找系统BUG。有很多人,包括一部分测试人员,用发现的系统BUG来衡量一个测试人员。如果你对找BUG乐在其中的话,不难感受到那是一个充满了对系统行为的分析的过程。这时,我没感受到老师说的老中医,我感受到到是侦探——我所能相信的就是运行着的代码,确认所有的可能性,然后得到真相。
但测试毕竟是一门工作,工作就有它现实的一面。和许多项目一样,我们的现实就是人少活多,测试任务实在难以安排。面对这样的情况,当时的部门领导提出了一个口号——“人人都是测试”,并且身体力行,进行一些验收测试,而我们测试人员,不仅是做测试,还是质量的标杆,是一面旗帜,时刻提醒团队关注质量。这样之后,一方面减轻了测试的压力;另一方面,更大的收获是培养了开发人员的自测习惯。
随着公司部门的调整,在新的部门中,和许多公司一样,测试又被赋予了质量保证的工作。而质量从来不是测试出来的——测试人员本身并不构建质量而是提供了系统质量的部分反馈。而面对大量的项目,众多的需求时,如何更经济地提供质量反馈呢?我采取了基于失效风险分析的方式——如果某一功能失效,某一代码控制有问题,它的风险是什么。
这时的我,已经像侦探一样找BUG,提醒团队关注质量,分析风险来反馈质量信息。而接下来测试的道路又需要怎么走呢?这时,《软件测试的经验与教训中》中James Bach(测试界的大牛)提出说“测试人员是项目的前灯”。很不解渴,我又在他的博客中看到了“测试人员的角色”一文,其中总结道“现在,我认为测试的职责是提供重要信息,支撑创造优秀的产品和业务运营。这包括了发现问题、保证质量、分析风险、以及其他任何能够帮助团队了解当前状况的方式”。[原文:Today, I think the role of testing is to bring vital information to light in support of the grand mission of creating great products and running the business. That includes finding problems, assessing quality, analyzing risk, and in any other way helping the team to understand what's going on.]当时,读到这句话,很惊喜,又很疑惑。惊喜,似乎看到了对测试更深层的理解;疑惑,提供重要信息就能成为项目的前灯吗?
直到一年多后的今天,经过更多的实践和体会,我可以很有信心地回答心中的疑惑——优秀的测试就是项目的前灯。如果把领导层、产品经理、开发人员、测试人员看作一个研发系统。那么优秀的测试人员通过对领导层、产品经理、开发人员这些利益相关者提供重要的信息反馈,改变着这个研发系统的行为——测试人员就是研发系统中的反馈机制,通过把重要信息反馈给这个研发系统的行为决定者(权利脉络),增强或减弱研发系统的行为倾向,直至质变。这就是目前,我们测试团队努力的方向。[1]
那么怎样的优秀的测试,能胜任这样的角色呢?之后会在《测试人员等核心能力与素质》中详述。
注释:
[1]反馈回路与系统的关系,可以参考Meadows的《系统之美》]