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.


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 ...

Get Why Programs Fail, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.