CHAPTER 16 Learning from Mistakes
At the end of each debugging session, one wonders how the defect could have come to be in the first place. This chapter discusses techniques to collect, aggregate, and locate defect information; techniques to predict where the next defects will be; and what to do to prevent future errors.
16.1 WHERE THE DEFECTS ARE
In Figure 1.10, we have already seen a visualization of the defect distribution in ECLIPSE, showing for every single component how frequently it was involved in fixing a defect. As you can see, the distribution of defects across packages is very uneven. For instance, compiler components in ECLIPSE have a defect density that is four to five times higher than in user-interface components. This uneven ...