A SURVEY OF SOFTWARE INSPECTION TECHNOLOGIES [chapter]

OLIVER LAITENBERGER
2002 Handbook of Software Engineering and Knowledge Engineering  
Software inspection is a proven method that enables the detection and removal of defects in software artifacts as soon as these artifacts are created. It usually involves activities in which a team of qualified personnel determines whether the created artifact is of sufficient quality. Detected quality deficiencies are subsequently corrected. In this way an inspection can not only contribute towards software quality improvement, but also lead to significant budget and time benefits. These
more » ... ages have already been demonstrated in many software development projects and organizations. After Fagan's seminal paper presented in 1976, the body of work in software inspection has greatly increased and matured. This survey is to provide an overview of the large body of contributions in the form of incremental improvements and/or new methodologies that have been proposed to leverage and amplify the benefits of inspections within software development and even maintenance projects. To structure this large volume of work, it introduces, as a first step, the core concepts and relationships that together embody the field of software inspection. In a second step, the survey discusses the inspection-related work in the context of the presented taxonomy. The survey is beneficial for researchers as well as practitioners. Researchers can use the presented survey taxonomy to evaluate existing work in this field and identify new research areas. Practitioners, on the other hand, get information on the reported benefits of inspections. Moreover, they find an explanation of the various methodological variations and get guidance on how to instantiate the various taxonomy dimensions for the purpose of tailoring and performing inspections in their software projects. One prevalent reason for the use of inspection technology in software projects is the inevitability of defects. Even with the best development technologies in place, defects cannot be completely avoided. This stems from the fact that software development is a human-based activity, and, thus, prone to defects. A defect can be characterized as any product anomaly, that is, any deviation from the required quality properties that needs to be tracked and resolved. To be most effective, software inspections need to be fully integrated into the software development process from a technical as well as from a management point of view. Figure 1 presents an example using a simplified version of the Vorgehensmodell (V-Model) [19] . The products are sufficiently generic, and are found in one form or another in most, if not all, development process models.
doi:10.1142/9789812389701_0023 fatcat:a3o5urssczcffmgvwa2awm7lua