测试方法是影响测试效率的主要因素之一。此外,人为因素、软件类型、缺陷数量、测试充分度等都会对测试效率产生影响。下面对这些因素作一个简要分析。

  1)人为因素

  人是软件测试过程中一个重要的组成部分,不同的人的工作能力、态度、方法、经验等对测试效率均有较大影响。特别是对于差别较大的测试团队,这种影响会比较明显。因此需要采取严格的制度、规范的工作方式来进行约束,尽量减小人为因素对测试效率的影响。

  2)软件类型

  软件类型也是影响测试效率的一个重要因素。不同类型的软件测试所需的方法、测试的难易程度均不相同,即便是对于同一个测试人员,测试不同类型的软件的效率和发现错误的能力也会有所区别。

  3)缺陷数量

  软件质量的好坏决定了缺陷数量的多少,而缺陷数量影响测试效率。对于缺陷越多的软件,越需要投入人力、物力进行测试,缺陷越多的软件其回归测试所需的资源也会更多,导致测试效率降低。

  4)测试充分度

  测试充分度反映了一个测试是否得到了良好的执行,它直接关系到测试的效率。测试越充分,发现的缺陷可能越多,其测试效率也会受到影响。但是测试充分度与软件质量也密切相关,不能为了追求效率而忽略质量。

  通常我们说测试效率高,是指在保证质量的前提下,尽量的减少人力、时间等消耗,并不是单纯的追求速度。那么如何衡量和提高测试效率呢?

  1、测试设计

  测试设计的效率应通过两方面衡量。一是通过测试用例数与系统功能点,考核测试用例的覆盖度;二是通过测试用例的条数与编写时间,考核测试用例编写效率。

  2、测试执行

  测试执行效率应通过缺陷质量、缺陷分析、遗留缺陷、缺陷定位等进行衡量。

  1)缺陷质量

  这里我们称为缺陷质量而不是缺陷数量,是考虑到评价测试效率不仅仅靠缺陷个数,还要考虑缺陷的严重级别及对系统的影响程度。例如,我们将缺陷的严重级别分为四个等级,A级缺陷为致命缺陷,定义为影响系统运行或影响核心模块测试的缺陷;B级缺陷为严重缺陷,定义为影响模块或子模块测试的缺陷和核心功能的缺陷;C级缺陷为一般缺陷,D级缺陷为建议类缺陷。那么,我们在统计缺陷数的时候,应根据缺陷等级×相应的权重来计算缺陷总数。比如,缺陷质量=A×1+B×0.8+C×0.5+D×0.1,这样评价测试效率避免了因缺陷数量相同而缺陷严重不同而导致的争议。

  2)缺陷分析

  测试过程中难免会遇到重复的缺陷或者无效的缺陷,那么在考虑测试效率时要将这些缺陷排除在外。

  3)遗留缺陷

  测试不可能穷尽软件的全部缺陷,用户使用软件的过程也是一个不断测试的过程。因此可能会有部分缺陷被用户发现,这部分缺陷称为遗留缺陷。对于遗留缺陷,除了考虑数量之外,重要的是其严重程度。一般情况下,好的测试是不允许遗留致命或者严重缺陷的。

  4)缺陷定位

  效率高的测试不仅要发现缺陷,还要能够对缺陷进行深入的定位和分析,找出产生缺陷的根源和导致缺陷发生的因素。