尽早和尽量多的发现缺陷是测试人员的重要测试目的之一。同时,测试人员提交的缺陷报告是测试过程中的重要工作产品的输出。由于测试人员提交的缺陷,在整个软件开发生命周期中具有举足轻重的作用,所以测试人员发现的缺陷数量也常常作为考核测试人员的指标。

  尽管缺陷是测试人员在整个测试过程中的重要工作成果和输出,但是,纯粹的缺陷数量并不适合作为考核测试人员的指标。本文将从两个方面阐述其中的理由:首先,以缺陷数量考核测试人员并不客观;其次,以缺陷数量考核测试人员,除了不客观之外,由其引起的危害多多;

  1)以缺陷数量考核测试人员并不客观

  缺陷数量并不能很好的反映测试人员的工作内容,同时它也不能覆盖测试人员的各种测试活动。因此,通过缺陷数量对测试人员进行考核,并不能客观的反映测试人员的生产率和测试技能等。以缺陷数量考核测试人员,其不客观性可以表现在各个方面,例如:

  ● 测试的对象不同,例如:有的测试人员关注在以前版本的功能上面,而有的测试人员负责新开发的功能上面。测试的实践经验表明,对以前版本的功能进行回归测试,发现的缺陷数目比较少,而针对新开发功能进行的测试,发现的缺陷会多得多;

  ● 测试类型的不同,例如:有的测试人员主要负责产品的基本功能测试,而有的测试人员进行非功能的测试。一般来说,非功能测试,例如:稳定性测试、性能测试等,单位时间内发现的缺陷数目比较少,但是通常来说发现的缺陷都是对客户而言是比较严重的;

  ● 开发人员水平的不同,例如:针对类似的功能模块,对于新手或者没有经验的开发人员,可能在模块开发过程中引入更多的缺陷,而经验丰富的开发人员则可能更好的避免缺陷的引入。因此,负责测试没有经验的开发人员开发的模块,相对来说可以发现更多的缺陷;

  ● 功能模块复杂程度的不同,例如:有的功能模块复杂,而有的比较简单。因此,在相对简单的功能模块中,可能可以发现的缺陷数量比较少,而复杂的模块中可能会发现的更多;

  ● 缺陷可检测性的不同,例如:有的缺陷是产品图形化界面的显示问题,比较容易发现,并且容易复现和问题定位;而有的缺陷,例如:长时间测试导致的系统重启,不仅耗时耗精力,并且难以检测和难以复现;

  ● 测试的目的不同,例如:有的测试人员主要负责在开发阶段的测试,其测试的主要目的是发现缺陷;而有的测试人员可能更多的是在用户现场测试,那么他们的目的可能更多的是证明我们的产品是可以正确工作的,发现缺陷并不是他们的主要目的;

  ● 测试的工作不同,例如:有的测试人员可能将更多的时间和精力放在测试文档的设计上面,例如:编写测试规格说明;而有的测试人员主要负责测试执行;

  ● 缺陷发现的阶段不同,例如:有的缺陷是在早期的软件工作产品的评审过程中发现的,而有的是在测试执行过程中发现的;

  ● ……

  上面罗列了在不同测试条件和环境下,发现缺陷的数量是可以迥然不同的。因此,不考虑测试人员之间角色和职责定义的不同,而统一用发现缺陷的数量作为考核的基础,显然是不合理的。