As a result of the general survey, we decided to survey the design and coding MRs in depth. The following were the goals we wanted to achieve in this part of the study:
Determine the kinds of faults that occurred in design and coding
Determine the difficulty both in finding or reproducing these faults and in fixing them
Determine the underlying causes of the faults
Determine how the faults might have been prevented
Compare the difficulty in finding and fixing interface and implementation faults
There were two reasons for choosing this part of the general set of MRs. First, it seemed to be exceedingly difficult to separate the two kinds of faults. Second, catching these kinds of faults earlier in the process would provide a significant reduction in overall fault cost; that is, the cost of finding faults before system integration is significantly less than finding them in the laboratory testing environment. Our internal cost data is consistent with Boehm’s [Boehm 1981] (see also Chapter 10 by Barry Boehm). Thus, gaining insight into these problems will yield significant (and cost beneficial) results.
In the two subsections that follow, we summarize the survey questionnaire, present the results of our statistical analysis, and summarize our findings with regard to interface and implementation faults.
The respondents were asked to indicate the difficulty of finding and fixing the problem, determine the actual and underlying causes, indicate ...