Multiple Bug Spectral Fault Localization Using
Debugging is crucial for producing reliable software. One of the
effective bug localization techniques is Spectral-Based Fault Localization
(SBFL). It locates a buggy statement by applying an evaluation metric to
program spectra and ranking program components on the basis of the score
it computes. Recently, genetic programming has been proposed as a way to
find good metrics. We have found that the huge search space for metrics
can cause this approach to be slow and unreliable, even for relatively
simple data sets. Here we propose a restricted class of "hyperbolic"
metrics, with a small number of numeric parameters. This class of
functions is based on past theoretical and empirical results. We show
that genetic programming can reliably discover effective metrics over a
wide range of data sets of program spectra. We evaluate the performance
for both real programs and model programs with single bugs, multiple bugs,
"deterministic" bugs and nondeterministic bugs.
debugging, bug localization, program spectra, machine learning