Business and design in Asia.

文章配图由frog高级工业设计师Remy Labesque创作
漏洞完全可以看做是动物。通过在软件开发过程中数千小时去猎杀、捕捉和描述它们,我渐渐对它们的生态和习性充满兴趣。有必要指出的是,我是个合格的工程师,而非昆虫学家。然后,当我坐下来进行测试的时候,就像是套上远足的长靴,握牢一套考察工具,为寻找昆虫穿过灌木丛。显而易见,有很多以质量监控为工作内容的职业:侦探、记者、批评家、税务审计。但我最喜欢的还是科学家,因为质量监控(QA)也是从科学方法论中习来。而且对于一个将大学生涯奉献给生物科学的人而言,这是令人愉悦的巧合。
质量监控工程师总是要进入一个奇怪且复杂的环境(比如,一个新项目或新产品),他不仅要观察已知情况,而且要留意在这个实验庞大图景中可能的隐藏之处——类似于发现漏洞潜藏在树叶之下的部分,同时要关注用户行为的关联。如果我们选了对的一面,我们的客户和消费者都会非常满意。独立观察报告的价值并不大——没有比“我看到紫色一闪而过”更好地描述一种新发现的甲虫。质量监控需要描述漏洞,或展现漏洞理论。在这种开放和缓慢移动的环境中,一些漏洞很容易暴露,另一些则深藏不露。弄清楚如何处理他们,恰可以表现测试软件时意料之外的科学一面。
十年前在一间芯片公司测试MP3重放功能时,我听到测试机发出恐怖的杂乱音——这并非是个恼人的故障,看上去音乐还很连续。最终的解释是一些很小的受损MP3文件导致了一个软件缺陷。直到我发现一个关键事实才得出上述这个答案:这些杂音往往经常在重放开始时在三个受损文件处发生。如果我从开始演奏,一切流畅。但我是如何发现的呢?在文章《像科学实验的测试案例》中,测试经理David Coutts坚持认为,“对科学和科学方法论的理解,是对软件和软件方法论理解的关键”。所以要谢谢查尔斯·达尔文——不仅为了他的“适者生存”理论,还有这种“假设-演绎”法。所有的漏洞报告,即使是最困难的那些,由这样的观察开始:有些地方看上去或者听上去不太对,数字加总错误,字体错误,或者出现错误信息。或者仅仅是突然出现的变化、不方便、迅速移动和奇异行为都是漏洞信号。测试者一遍遍从不同路径进行检查和做笔记。最初,结果只是一堆搜集到的信息。但最终,假设可自我验证,继而对预言进行测试,来验证支持还是推翻假设。这正是过去150年科学界沿用的“假设-演绎”法。人们每天都在用它,但是我希望将它看做“质量监控”的必要装备。
尽管如此,科学更倾向于播种技术,我们并非是像学术实验那样“不在场”地研究漏洞。我们需要扮演消费者的角色来获得真实体验。尝试一些尚未发布的软件听上去司空见惯,但也会带来惊喜或偶尔产生困惑。这是软件开发的本质。和科学一样,好的质量监控需要创造力——或至少能即时创作。用切甜点的方式一点点实验施行的做法,束缚了项目的应有价值。测试可以无穷无尽,但并非所有测试都有助于检测出大漏洞。即便最有经验的工程师也认为不必对可能显示关键漏洞的每个测试都进行报告。有一次,我扣上笔记本电脑挪到另一张桌子——这个测试并非计划之内但也应当进行——当重新打开电脑时,屏幕依然是黑的,我意识到这是个漏洞。
所有测试都有助于确保基础部件和功能正常,但质量监控往往受益于那些创造性和好奇心带来的细节提示。测试产品时,“如果…会怎样”的想象总会带来意外发现。
尽管质量监控工程师受益于科学方法和创造性思考,我们依然要避免其他一些直觉(及压力),类似于解决故障(而非报告),走流程,或者固守传统方法。测试者如同半个工程师,半个用户,有时甚至是半个麻烦制造者。但对于质量监控最重要的特质是好奇心。我最热衷这份工作的原因是“发现”的感觉,以及追踪、分离、报告此前从未察觉的漏洞的这种成就感。特别当这个漏洞很大而且非常罕见的时候。
Kevin Parker是青蛙设计的高质量监控工程师。