4.4缺陷预测
引入缺陷是人类的正常现象,所有的工程师都会引入缺陷。因此所有的工程师都应该了解自己引入缺陷的类型和数据。
在开发过程中,总是可再进行一轮测试或代码复查,决定是否这样做的唯一方法就是分析缺陷数据。通过分析历史数据,可以估计出程序中缺陷的个数。通过把当前项目的数据和估计数据相比较,就能大概知道正在开发的程序的质量情况。这样就能决定是否需要增加一些缺陷排除步骤。
缺陷率的预测。当开发一个新的程序时,可能会觉得很难估计你将引入多少缺陷,理由是缺陷的个数因程序的不同而不同。缺陷个数不稳定是有以下几个原因造成的。首先使经验问题,个人的技能是在不断提高的。开始编程序时,要面临着很多以前没有碰到过的问题。往往不能确定有些过程和函数是如何执行的,可能是语言的结构不清楚或者可能会遇到新的编译器或编程环境的问题。这些问题都会引起开发时间和缺陷路的波动。有了经验后,你将逐渐克服这些问题,犯的错误就减少了。这既减少缺陷的总数又减少缺陷数目的波动。缺陷的减少起初是由于经验的增加和对语言熟练程度的提高。经过这最初的提高后,就需要收集和分析缺陷数据来进一步改进了。
缺陷路波动的第二个原因是个体过程不稳定。当开始学习写程序时你也同时开始学习使用新的过程和方法。你的过程将随着实际的经验不断的发展,这就会引起完成不同程序任务的时间和引入缺陷的数据的波动。
最后,缺陷本身也是这种变化的原因,引入的缺陷越多,修复这些缺陷所花时间就越长。修复缺陷所花的时间越长,引入新的缺陷的几率也就会增加。因此缺陷的修改时间变动幅度很大。所以,很难对一个引入很多缺陷的过程进行预测。
随着开发过程的改进,过程会逐步稳定下来。这种稳定将提高缺陷预测的准确性。试验证明,如果在代码复查方面花了足够的时间,你的过程会迅速稳定下来。一旦你的过程相当稳定,缺陷也将容易预测。
根据对最近的程序跟踪每千行引入和排除的缺陷数,就可估计出在将来的程序中可能引入和排除的缺陷数。