Page 232 -
P. 232

CHAPTER 8  SOFTWARE QUALITY ASSURANCE                              203

                              review.  In this book, however, we focus on the formal technical review, sometimes
                              called a walkthrough or an inspection. A formal technical review is the most effec-
                              tive filter from a quality assurance standpoint. Conducted by software engineers (and
                              others) for software engineers, the FTR is an effective means for improving software
                              quality.

                              8.4.1  Cost Impact of Software Defects

                              The IEEE Standard Dictionary of Electrical and Electronics Terms (IEEE Standard 100-
                              1992) defines a defect as “a product anomaly.”  The definition for fault in the hardware
                              context can be found in IEEE Standard 610.12-1990:
                              (a) A defect in a hardware device or component; for example, a short circuit or broken
                              wire. (b) An incorrect step, process, or data definition in a computer program. Note: This
                              definition is used primarily by the fault tolerance discipline. In common usage, the terms
                              "error" and "bug" are used to express this meaning. See also: data-sensitive fault; program-
                              sensitive fault; equivalent faults; fault masking; intermittent fault.
                              Within the context of the software process, the terms defect and fault are synony-
                              mous. Both imply a quality problem that is discovered after the software has been
                              released to end-users (or to another activity in the software process). In earlier chap-
                              ters, we used the term error to depict a quality problem that is discovered by software
                              engineers (or others) before the software is released to the end-user (or to another
                              activity in the software process).
                                The primary objective of formal technical reviews is to find errors during the process
                              so that they do not become defects after release of the software. The obvious bene-
                              fit of formal technical reviews is the early discovery of errors so that they do not prop-
                              agate to the next step in the software process.
                The primary objective  A number of industry studies (by TRW, Nippon Electric, Mitre Corp., among oth-
                of an FTR is to find
                errors before they are  ers) indicate that design activities introduce between 50 and 65 percent of all errors
                passed on to another  (and ultimately, all defects) during the software process. However, formal review tech-
                software engineering  niques have been shown to be up to 75 percent effective [JON86] in uncovering design
                activity or released to  flaws. By detecting and removing a large percentage of these errors, the review process
                the customer.
                              substantially reduces the cost of subsequent steps in the development and support
                              phases.
                                To illustrate the cost impact of early error detection, we consider a series of rela-
                              tive costs that are based on actual cost data collected for large software projects
                                     3
                              [IBM81]. Assume that an error uncovered during design will cost 1.0 monetary unit
                              to correct. Relative to this cost, the same error uncovered just before testing com-
                              mences will cost 6.5 units; during testing, 15 units; and after release, between 60 and
                              100 units.



                              3  Although these data are more than 20 years old, they remain applicable in a modern context.
   227   228   229   230   231   232   233   234   235   236   237