Test Management

Test Estimation
Test Metrics
COQ / Variance Metrics
Release Metrics
Software Testing Tools
Testing Verticals
Testing Infrastructure
Software Review Inspection
Software Review/Inspection Process

Importance of Software Review and Inspections

Benefits of Software Review and Inspections

This topic defines software review and inspections and it relates to a key process area for the Software Engineering Institute's Capability Maturity Model. It lists benefits achieved by performing software review and inspections. The process of software reviews and inspections is generally described. The common types of errors found during review/inspections is listed, along with some reasons why so much attention has been given to software reviews or inspections.

Software review or Inspections are peer reviews of software source code / testcase. The Software Engineering Institute has identified Peer Reviews as a key process area for Level 3 of the Capability Maturity Model. The purpose of Peer Reviews is to remove defects from the software work products early and efficiently. [CMU/SEI]. Defects are errors, and errors are caused because humans create software. We have all heard the expression "To Err is human...".

It is also well-known in the software industry that an earlier an error is found, the less expensive it is to correct. That is, it costs less to find an error during a review/inspection of the source code/testcase than it does to find the error by testing it within the system in which it is supposed to work.
Although people are good at catching some of their own errors, lots of errors escape the originator more easily than they escape anyone else. A review is a way of using the diversity and power of a group of people to point out needed improvements in a product of a single person or team. [Freedman/Weinberg].

Some of the benefits to be gained by review/inspections include the following: [Wheeler]

  • Reductions in user-reported defects.
  • Increased customer satisfaction.
  • Increased development productivity, evidenced by more function shipped in a given time or reduced development cycle time.
  • Improvement in meeting committed schedules.
  • Rapid cross-training of developers and maintainers on new products.
  • Continuous process improvement through removal of systemic defects (which cause product defects).
  • Team building.

Although extra time needs to be spent planning, preparing for, conducting, and summarizing review/inspections, it has been proved that this time spent reduces the overall software effort. This is because more than 50 percent of the test effort is spent correcting errors or defects, rather than proving that the software satisfies the requirements it is supposed to satisfy. Since it takes less time to fix errors during the coding/inspection phase than the test phase, the overall software effort is reduced.