Inspection in Software Engineering
Inspection in Software Engineering
individuals who look for defects using a well defined process. An inspection might also be
referred to as a Fagan inspection after Michael Fagan, the creator of a very popular software
inspection process.
Contents
[hide]
1 Introduction
2 The process
3 Inspection roles
4 Related inspection types
o 4.1 Code review
o 4.2 Peer Reviews
5 See also
6 External links
[edit] Introduction
An inspection is one of the most common sorts of review practices found in software projects.
The goal of the inspection is for all of the inspectors to reach consensus on a work product and
approve it for use in the project. Commonly inspected work products include software
requirements specifications and test plans. In an inspection, a work product is selected for review
and a team is gathered for an inspection meeting to review the work product. A moderator is
chosen to moderate the meeting. Each inspector prepares for the meeting by reading the work
product and noting each defect. The goal of the inspection is to identify defects. In an
inspection, a defect is any part of the work product that will keep an inspector from approving it.
For example, if the team is inspecting a software requirements specification, each defect will be
text in the document which an inspector disagrees with.
The process should have entry criteria that determine if the inspection process is ready to begin.
This prevents unfinished work products from entering the inspection process. The entry criteria
might be a checklist including items such as "The document has been spell-checked".
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.
The process is ended by the moderator when it satisfies some predefined exit criteria.
Author: The person who created the work product being inspected.
Moderator: This is the leader of the inspection. The moderator plans the inspection and
coordinates it.
Reader: The person reading through the documents, one item at a time. The other
inspectors then point out defects.
Recorder/Scribe: The person that documents the defects that are found during the
inspection.
Inspector: The person that examines the work product to identify possible defects.
A code review can be done as a special kind of inspection in which the team examines a sample
of code and fixes any defects in it. In a code review, a defect is a block of code which does not
properly implement its requirements, which does not function as the programmer intended, or
which is not incorrect but could be improved (for example, it could be made more readable or its
performance could be improved). In addition to helping teams find and fix bugs, code reviews
are useful for both cross-training programmers on the code being reviewed and for helping junior
developers learn new programming techniques.
Peer reviews are considered an industry best-practice for detecting software defects early and
learning about software artifacts. Peer Reviews are composed of software walkthroughs and
software inspections and are integral to software product engineering activities. A collection of
coordinated knowledge, skills, and behaviors facilitates the best possible practice of Peer
Reviews. The elements of Peer Reviews include the structured review process, standard of
excellence product checklists, defined roles of participants, and the forms and reports.
Software inspections are the most rigorous form of Peer Reviews and fully utilize these elements
in detecting defects. Software walkthroughs draw selectively upon the elements in assisting the
producer to obtain the deepest understanding of an artifact and reaching a consensus among
participants. Measured results reveal that Peer Reviews produce an attractive return on
investment obtained through accelerated learning and early defect detection. For best results,
Peer Reviews are rolled out within an organization through a defined program of preparing a
policy and procedure, training practitioners and managers, defining measurements and
populating a database structure, and sustaining the roll out infrastructure.