Locating defects is uncertain

Andreas Zeller
[Google Scholar] [DBLP] [Citeseer]
Read: 27 August 2020

Proceedings of BUGS 2005 (PLDI 2005 Workshop on the Evaluation of Software Defect Detection Tools)
Chicago, IL, USA
June 2005
Note(s): bug localization

This one-page, position paper talks about bug localization. Failures are seen as the symptom of a chain of infection that starts with some initial cause/infection.

The problem of localization consists of splitting the code into parts that are responsible for the bug and parts that are not. The interesting observation is that

to precisely locate the defect, we need a specification [of each part that is considered] that is precise enough to tell us where to correct it.

and this leads to the conclusion that

programmers do not “locate” defects; they design fixes along with the implicit specification of what should be going on at this location—and the location that is changed is defined as the defect in hindsight.

Tools that try to locate bugs will be imprecise for several reasons so they should estimate the probablity of each location they suggest and list locations in order of decreasing probability.