There are several methods to identify defects during the software development. (Review, walkthrough and Inspection) The most effective is software formal inspection or Fagan inspection as it was developed by Michael Fagan of IBM in the 70s.
According to this method, inspection must be formal; materials to be inspected must be prepared and meet the inspection entry criteria; and people who inspect must be qualified, as well as the time and place must be arranged ahead of time. There are formal roles for each participant and they must be trained in the method. (Moderator, Recorder, Inspectors, Author as minimum) The participants must review the materials ahead of the meeting (At least few days). The main purpose of the inspection meeting is only to find defects NOT solution. After the inspection, the author of the work (i.e., developer) must rework all defects. There is a follow up session where the inspection moderator, quality assurance or sometime the entire inspection team will review to verify that all defects have been fixed and no additional defects have been introduced.
Software inspection is a method of static testing to verify that software meets its requirements. It engages the developers and others in a formal process of investigation that usually detects more defects in the product -- and at lower cost -- than does machine testing. Users of the method report very significant improvements in quality that are accompanied by lower development costs and greatly reduced maintenance efforts.
Since introducing the inspection process in 1974, IBM achieved significant improvements in quality. The company nearly doubled the number of lines of code shipped for System/370 software products since 1976, while the number of defects per thousand lines of code was reduced by two-thirds (Michael Fagan, pictured).
A Fagan inspection is a process of trying to find defects in documents (such as source code or formal specifications) during various phases of the software development process. It is named after Michael Fagan, who is credited with the invention of formal software inspections.
The stages in the inspections process are: Planning, Overview meeting, Preparation, Inspection meeting, Rework and Follow-up. The Preparation, Inspection meeting and Rework stages might be iterated.
- Planning: The inspection is planned by the moderator.
- Overview meeting: The author describes the background of the work product.
- Preparation: Each inspector examines the work product to identify possible defects.
- Inspection meeting: During this meeting the reader reads through the work product, part by part and the inspectors point out the defects for every part.
- Rework: The author makes changes to the work product according to the action plans from the inspection meeting.
- Follow-up: The changes by the author are checked to make sure everything is correct.
Reviews and Walkthroughs are not as formal as Inspection but they are useful and can be used in addition to formal inspections. Basically a walkthrough is a group review of any technical product by people who work on the same project. (It could be programmers, designers, developers, or anyone who may be involved in various phases of the project) to look into someone ‘s work and made comments regarding defects. As a non-formal, a walkthrough should not include the project managers, the director, or users. The reason for walkthrough is to identify errors as quickly as possible. A walkthrough can take place at anytime and anywhere in the development of a software product.
A review is more formal than a walkthrough but not as formal as an inspection. Reviews that are usually conducted at the end of each phase in the software development lifecycle such as requirements review, architecture review, or design review. The purpose of reviews is to make sure that everything that need to be done in a lifecycle phase are done so developers can go on to the next phase. As a general checking point, it may not catch errors as an inspection. Review does involve the project manager, the director or customers and users.