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.