[概述]
测试估算是测试过程中的重要测试活动之一,它不是脱离于测试过程而独立存在的,测试估算需要和测试过程紧密的集成在一起,才能提高测试估算的有效性,并帮助测试活动的开展。
[正文]
测试估算是测试计划的重要组成部分,它贯穿于整个软件测试生命周期之中。测试估算并不是在测试计划中的一次性的活动,在不同测试阶段,或者在测试输入有较大变更的时候,都需要重新估算测试对象。图1是软件测试生命周期的模型。
图1 软件测试生命周期
在软件测试生命周期的早期,测试人员对测试对象相关信息的了解很少,此时的测试估算可能只是基于他们的经验和直觉而展开。随着测试对象的逐步细化,测试人员对测试对象的了解也将不断的深入,可以采用的测试估算技术包括基于类似项目的估算和基于测试规模的估算等。
了解测试生命周期不同测试阶段的测试任务,可以更好的为测试估算提供支持和帮助。同时,不同测试阶段其测试估算的准确程度范围也是不一样的,同样它可以帮助测试人员更好的分析和评估测试风险。尽管在测试过程中很难评判测试估算是否合理,但是至少在测试项目结束之后可以知道测试估算的准确性,并且评估在整个测试过程中我们的测试估算是否处于合理的区间。图2是测试过程中良好测试估算应该具备的准确度范围。
图2 良好测试估算的准确度范围
其中,纵坐标代表测试估算的偏差范围,图中的空心圈代表的是在该测试阶段估算得到的结果,最后的实心圈代表的是实际的结果;横坐标代表的测试生命周期的不同测试阶段。对于一个良好的测试估算,其每次估算结果都应该在该阶段的估算准确度范围之内,并且其应该是不断靠近最终的实际结果。
测试估算与测试过程的有效集成,还需要我们不断的分析测试估算出现偏差的原因,从而在将来的项目中不断改进测试估算的能力。由于测试估算与测试过程集成在一起,我们可以知道每次测试估算的依据,并知道重新测试估算的原因是什么,有助于我们不断积累成功的经验,并预防容易出现差错的测试实践。因此,在每个测试项目结果之后,针对测试估算的有效性,我们需要回答下面这些问题:
1)测试估算的准确度如何?每个测试阶段提供的测试估算范围都包含了最终的实际结果?
2)最初提供的测试估算范围是否足够大?还是我们可以采取一些有效的测试估算技术减少该估算范围?
3)提供的单点测试估算结果是完全偏低?或完全偏高?还是处于高低的平衡分布?
4)测试估算出现偏差,其中偏差的原因是什么?
5)测试估算过程什么估算技术提供了最正确的估算结果?该技术是否每次都能提供比较准确的估算结果?还是只是偶尔出现?
6)什么时候会重新估算测试对象?重新估算的次数是否太多,抑或太少?
另外,还需要注意的一个问题是:测试估算并不是某个测试经理的事情,测试团队的每个成员都应该积极参与估算的开展。