|
通过对错误分布情况的仔细分析,可以帮助我们将测试的主要精力更好地集中到最有价值的地方,如下图显示了缺陷与错误的分布情况。
|
|
|
|
|
开发早期的错误通常是很多的,而且令人讨厌的是它们还会转移到后期。这和制造业的装配线类似,如果一个坏零件或次品被允许上线,从这点开始,包含它的组件就是“坏”的,如果该组件下了线,并出了厂门,情况就会更糟糕,就得为那个坏零件付出代价。换句话说,错误不是自封闭的,当它们转移到后面的组件中时,往往会以新的形势出现。
|
|
|
所有的错误都是要付出代价的。没有被发现的错误,以及那些在开发过程中很晚才被发现的错误都是成本非常高的,没有被发现的错误就在系统中迁移、扩散,最终导致系统失效。直到很晚才被发现的错误常常造成代价昂贵的返工。那些没有被发现的错误导致系统失效,造成严重的财产损失,有时还会带来法律上的麻烦,系统将终身为此付出高昂的代价。
|
|
|
这意味着测试是贯穿开发全过程的工作,也意味着对最终产品的测试仅仅是软件质量大战中的一个战役,而且不是代价最高的战役。今天,40%~70%的软件开发时间和资源都花在查错和纠错上。不幸的是大多数组织还没有一套办法来准确地计算成本,不管怎样,在使用测试资源方面任何有意义的改进都能极大地降低开发成本。
|
|
|