软件测试人员觉得他们是电影《星球大战》里所谓的“黑暗的力量”,经常搞笑说 “来黑暗面吧——我们这儿有饼干吃哦”。他们觉得自己集电影里的叛军、戴黑帽子 的坏蛋、印第安纳·琼斯(Indiana Jones)、杰克船长(Jack Sparrow)和福尔摩斯 (Sherlock Holmes)诸多角色于一身。你从不知道测试团队自视为坏蛋,对吧?他们是 来拆掉你的漂亮纸牌房子的,而且他们还相当享受这一过程。好的测试人员几乎都有点 “臭脾气”,经常让人不爽。不过,他们从不会在已经部署的正式产品上做测试,他们 应该会在产品发布之前测试过了用户使用场景X,他们告诉你哪里出错了,但你没听进 去,对吧?有时候你恨不得想用棍子敲他们一下,特别是他们说对了的时候。他们就是喜欢找缺陷(bug),很多可恶的缺陷对他们而言实在有趣。聪明的测试人员 早就认识到其他非测试人员是无法理解他们和他们的幽默感的。还(遗憾地)发现他们 的角色可能并没有被充分承认、理解和奖励,所以他们不太热衷与公司的其他人分享他 们的独特视角。在IT世界里,测试人员的工作是极为特殊的。在商业世界里有多少份工作是付钱让你直 言不讳的呢?当唯一的“桃子”显然有些坏掉的时候,测试人员不应该是拿着工资却告 诉你一切正常。可以想象,你的项目组或IT部门的其他成员可能会有些不合时宜的乐观 10第1章情绪或自相矛盾的评论意见。不过,测试人员拿了工资就是要告诉你他们所了解的一切 事实,甚至有时候他们会直白地说你的小宝宝很丑,还给出一系列论据。
那么测试人员到底是什么样的人呢?如果只列举少量的关键特质,那么首要的一点是 测试人员有好奇心。他们想弄清楚事物是怎么运行的;其次,他们喜欢动手实验,他 们想知道尝试使用功能演示时不同的用户场景和实验会发生什么;再次,好的测试人员 胆子比较大,他们不害怕会破坏什么东西,不管你有多位高权重,他们也不害怕把发现 的事实告诉你,他们更不害怕站出来据理力争,一定要把他们相信可能影响到产品成功 的问题解决掉。测试人员聪明,善于分析,善于学习。事实上,他们总是在学习,他们 的工作性质要求如此。技术总是在变化,他们接到的每个项目或多或少跟上一个项目不 太一样。有时候他们有很好的文档,有时候没有很好的文档,有时候甚至没有成文的文 档。他们必须问出正确的问题,研究正确的问题,把谜题的各个碎片联系在一起,然后 得出正确的结论。测试人员一般不关心办公室政治,如果你发现一个测试人员特别精通 此道,很有可能他的本职工作做得不是非常出色。当你的工作是发现和报告问题,要想 玩好政治游戏是很困难的。经常有人责备测试人员过于直接、粗鲁、团队合作精神不佳 等。其实不然,很有可能责备他们的人不了解或者没能意识到项目组中测试人员的角 色,他们的工作不允许他们隐瞒任何“不方便说”的信息。上述这些是测试人员好的特质,还有其他一些不那么好的特质,但也是大部分测试人员 整体个性中不可分割的一部分,尤其对那些测试经验丰富的人来说。测试人员容易不信 任人,这是从实践经历中学来的,别人总是告诉他们模块X不需要测试,或代码Y“没 动过”,这种信息错的次数多到数也数不清了。所以就算你告诉测试人员草是绿的他们 也要亲自过目才敢相信。测试人员是挑剔的,这个习惯也贯穿在他们生活的其他方面。他们的任务就是要发现和报告问题,这就是说如果你发给他们的电子邮件里有一个拼写 错误,他们整个团队都会跳出来好心指出,甚至还有你(或者其他人)的其他错误。测 试人员质疑一切,包括权威。一般来说想要用搞定其他部门的办公室政治手腕来欺骗或 者算计测试部门可不容易,倒是告诉他们严酷的真相要来得好得多,这是唯一赢得他们 尊重和信任的方法。
好的测试人员同时是富有创造力和想象力的。测试通常是一个破坏的过程,正因为如 此,在正式产品环境下运行测试需要非常谨慎的决策。
好的测试人员不必试图证明软件 运行正常,他们是来证明软件不能正常运行的。这一态度差异是测试人员能发现如此多 缺陷的主要原因,他们就是想发现缺陷。他们分析手上所有的信息,坐下来思考怎么才 能破坏应用程序。项目组里没有其他人有这样的使命。开发人员一般甚至没有足够的时 间持续写代码,更不要说试图挤出足够的时间来想怎么破坏代码了。最终用户通常只是 执行日常工作的操作,如果有东西“坏掉了”,他们可能陷入恐慌和沮丧之中。另一方 面,只有测试人员勇敢地参与进来,使出吃奶的劲儿踢轮胎,如果有轮胎爆掉他们就开 心死了。要是一个车门掉下来,或他们的无影脚把引擎踢坏掉,他们就更开心了。这正好应验了妈妈一直告诉我们的话,要是你只盯人身上坏的一面,那你就只能发现坏 的东西。测试人员全面地盯着系统中出错的一面找问题,顺便也就检验了运行正常的部 分。但他们关注的焦点总是向着错的东西,而不是对的东西。如果你对测试的唯一目标 就是证明系统在完美条件下能按期望正常运行,你的开发人员会告诉你事实已经如此, 这样你就可以省一大笔钱了。
这对你有好处吗?呃,这对他们有好处,然而归根到底,对你的用户、你的公司和你的根本利益是有好处 的。