测试的一个主要目的是尽早发现缺陷,并在有限的测试时间内及时发布满足质量要求的产品。对于测试人员而言,我们必须在测试过程中回答这样的一个问题:什么时候结束测试。这对于每个测试而言,都是一个令人头痛的问题。本文将从5个不同的视角分析该问题,并提出相应的度量信息,以帮助测试人员更好的作出判断。
“什么时候结束测试”问题不仅是测试人员所关注的,同时也是其他利益相关者所期待的。在回答这个问题的时候,假如测试人员可以提供更多关于产品的质量信息,就可以相对容易的作出合理的判断。当前测试过程常用的两个指标是测试覆盖率和缺陷的数量,但是由于这两个指标并不能提供太多的信息,导致判断软件产品是否发布这个问题上存在较多的争议。为了更加全面的评估该问题,本文将从风险、测试、覆盖率、缺陷和信心5个方面,提供更加丰富的质量信息,以更好的回答该问题[1]。
1)风险
测试人员面对的测试时间和测试资源总是非常有限的,而测试对象的各种组合却往往是非常庞大的,甚至是接近无限的。采用基于风险的测试,在有限的测试时间和资源的情况下,有效确定测试的重点和优先级,将是一个有效的测试策略。同样的,对于回答“什么时候结束测试”,风险的因素也将是一个考虑的重点。
风险值是由风险发生的可能性和严重程度两个因素决定的。从测试的角度,针对风险的度量指标主要有测试风险管理指标TRMI、测试风险减轻有效性TRME和测试风险趋势TRT(具体的风险度量指标,将在其他文章中详细描述)。前两个风险度量指标是在测试结束之后才可以计算得到的,其结果对于回答本文的问题没有太多的指导意义。但是,测试风险趋势TRT,却可以很好的为项目利益相关者提供定性的风险信息。图1是某个项目的测试风险趋势TRT。
图1 测试风险趋势TRT
对于将要结束测试的产品,测试风险趋势TRT至少提供给相关人员两方面的信息:
● 原始累计的测试风险值趋于平坦;
● 应对后的累计测试风险值不仅要求趋于平坦,而且在应对过程中,测试风险值有非常明显的降低;
2)测试
测试过程中收集和分析测试(test)数据,例如:测试用例执行进度的信息,是测试人员在测试过程中一项非常重要的工作,也是评估“什么时候结束测试”这个问题的重要依据。图2是某个产品的系统测试用例执行进度。
图2系统测试用例执行进度
21/212>