缺陷检测率(Percentage of Defects Detected)
上述数据显示单独使用任何一种方法,其典型检出率没有超过75%,平均在40%左右。注意,最常用的单元测试和集成测试,典型检测率仅30%到35%之间。
根据NASA(美国国家航空航天局) Software Engineering Laboratory(软件工程实验室)、波音和其他公司的报告,不同的人更有可能找出不同的缺陷。研究发现,阅读代码能够找出较多接口缺陷,而功能测试则可以检测出更多控制缺陷。
找出缺陷的成本(Cost of Finding Defects)
大量研究发现,检查比测试的成本更小。NASA软件工程实验室的一项研究发现,阅读代码每小时平均检测出的缺陷要比测试高出80%左右,另一个组织则发现测试检测缺陷的成本是检查的6倍。后来IBM研究发现,平均来看,检查发现一个错误只需要3.5个工作时,而测试则需要15~25个工作时。
修正缺陷的成本(Cost of Fixing Defects)
一个缺陷存在时间越长,消除它的代价就越高昂,因此尽早发现错误的检测方法可以降低修正缺陷 的成本。更重要的是,有的方法诸如代码检查,一举可以确定问题的现象和原因;而另一些方法如测试,则只能发现问题表象,从根本修正还需要额外工作。微软语言程序部门发现,平均来看,代码检查方法找出并修正错误的要花费3个工时,而测试并修正则花费12个工时。
获取高于平均水平质量:
>对所有需求、架构以及系统关键部分设计进行正式检查
>建模或者创建原型
>代码阅读或检查
>执行测试