测试在软件开发中究竟充当什么角色呢。是驱动程序员的长鞭?是决定产品发版的判官?是过程改进的车头?是质量保证的标杆?我认为都不是,测试是标示产品状态的温度计。我们每天的工作是不断探测产品究竟到达怎样的“温度”。

  做好一只温度计可不容易,明确的刻度必不可少,对于测试来说,明确的标准是正确显示测试状态的前提。我们有很多标准,可总的来说,这些标准都跟明确有差距,因为我们的测试标准大多采用列举法,而列举法的缺陷是无法穷举,导致很多情况下无法找到对应的标准。

  温度计要能根据温度的变化而相应变化,而测试人员的水平参差不齐,在产品状态变化时,“相应”的程度会不一样,这会直接导致状态反映失真。

  温度计不光要刻度准确,相应反映。它测量的准确性还和使用者的使用方法有关。比如,测试体温需要5分钟,如果你只量了3分钟,你得到的结果不会是准确的。测试也是一样,没有足够的测试资源,也只能得到一个并不准确的产品状态。

  对于温度计来说,观察的角度不同,温度计显示的温度也不同。测试也一样,说通俗点是屁股决定脑袋,造成的结果是发版时间更重要时,测试总会从测试部转为开发部。而产品质量更主要时,测试又会转回来。

  当外界环境变化时,温度计的显示只能作为参考。如在海边,100度水才开,而在高原,80度水已经开了。对测试而言,产品质量要服从市场需要,当市场需要“水开”时,80度的水也能开。

  对于测试而言,我们能做的只有2件事:

  1、明确并让所有人掌握标准

  2、让测试人员的水平提高并趋同。

  而对于开发管理者而言,如何用好测试这支温度计,需要发挥管理者的智慧了。