Code Inspection: why, when and what
Why should you inspect software?
We advise you to inspect software because it saves time and money:
Code Inspection Pays For Itself—Software code inspection offers both immediate and long-term return on investment. This statement is founded upon these research findings:
- Code inspection is up to 20 times more efficient than testing,
- Code reading detected about 80% more faults per hour than testing,
- Debugging and associated rework takes about 50% of the time spent in a typical software development cycle.
Code Inspection Powers Up Testing Strategies—Software code inspection is more cost-effective and isolates defects more efficiently than testing. Combine inspection and testing to get the best strategy for defect removal. This statement is founded upon these research findings:
- Microsoft's applications division has found that it takes 3 hours to find and fix a defect using code inspection compared to 12 hours by using testing,
- The combination of design and code inspections usually removes at least 70% of the defects in a product,
- Detection of design defects costs 6 times more using testing than by using inspections,
- Code inspection at NASA's Software Engineering Laboratory found 20 to 60 percent more errors than testing did.
Code Inspection Boosts Productivity—When preparing for code reviews, developers find the majority of bugs that would otherwise be found by testers and users. This statement is founded upon these research findings:
- A study of 13 reviews at AT&T found that the importance of the review meeting itself was overrated; 90% of the defects were found in preparation for the review meeting and only about 10% were found during the review itself,
- IBM found that each hour of inspection prevented about 100 hours of related work,
- As much as 90% of development effort on a typical software system comes after its initial release, with two-thirds being typical,
- Designers and programmers learn to improve their work through participating in inspections and inspections improve productivity by 20% or more.
Code Inspection Makes Testing Cheaper—Software code inspection identifies defect indicators from Day One, making it more cost-effective than functional and system testing. This statement is founded upon these research findings:
- About 85% of errors can be fixed in a few hours if caught in the development stage,
- Construction errors detected during system testing cost 10 times more to fix than in the construction phase and 10-25 times more to fix when detected post-release,
- Correcting defects earlier rather than later in a project can cut overall development costs by factors of two or more.
Code Inspection Increases Agility—Regular code inspection helps make software more receptive to change. Improve the maintainability of software so that you can implement changes in a uniform and consistent manner. This statement is founded upon these research findings:
- ICI found that maintaining a portfolio of about 400 programs was only about 10% of the cost of maintaining a similar set of programs that had not been inspected,
- A study of large programs found that every hour spent on inspections avoided an average of 33 hours of maintenance,
- Increased quality assurance is associated with a decreased error rate but does not increase overall development cost.