Spectral debugging: How much better can we do?

Lee Naish
Hua Jie (Jason) Lee
Kotagiri Ramamohanarao

Spectral debugging uses execution profiles from passed and failed tests to rank statements according to how likely they are to be buggy. Typically a function (or metric) is applied to the number passed and failed tests which do/don't execute each statement, and the result is used to rank the satatements. Many different metrics have been used. In this paper we investigate how much better we can potentially do by using better ranking metrics. We strengthen previous results concerning optimality of some metrics for certain single bug programs and consider multiple bug programs. We also show how metrics which perform well for multiple bug programs can be adapted so they are optimal in the single bug case.

Keywords: debugging, bug localization, program spectra