ChrisBell.eu

Maintaining software quality with defect detection

I’ve been reading Steve McConnell’s excellent “Code Complete 2” and wanted to share this section on defect detection rates.

Removal Step Lowest Rate Modal Rate Highest Rate
Informal design reviews 25% 35% 40%
Formal design inspections 45% 55% 65%
Informal code reviews 20% 25% 35%
Formal code inspections 45% 60% 70%
Modeling or prototyping 35% 65% 80%
Personal desk-checking of code 20% 40% 60%
Unit test 15% 30% 50%
New function (component) test 20% 30% 35%
Integration test 25% 35% 40%
Regression test 15% 25% 30%
System test 25% 40% 55%
Low-volume beta test (< 10 sites) 25% 35% 40%
High-volume beta test (> 1000 sites) 60% 75% 85%

The most interesting facts that this data reveals is that the modal rates don’t rise above 75 percent for any single technique. Moreover, for the most common kinds of defect detection - unit testing and integration testing - the modal rates are only 30-35 percent.

Whilst important, unit tests aren’t the single ultimate aim, and can only ensure software quality when used in conjunction with other methods of defect detection. It seems obvious that more scrutiny and testing will result in better software quality, but it is very interesting to understand the effectiveness. The difficulty comes in knowing how much to invest and where to get the best return.