A Case Against Coverage-Based Program Spectra
Péter Attila Soha, Tamás Gergely, Ferenc Horváth, Béla
Vancsics and Árpád Beszédes
Spectrum-Based Fault Localization (SBFL) is a
semi-automated debugging technique that gained popularity in the
last decades due to its intuitive approach and relatively simple
implementability. Despite this, the performance of practical SBFL
techniques in terms of fault localization capability does not
reach the threshold that would enable their acceptance by
professional programmers. Almost all modern SBFL approaches are
based on the code coverage-based spectrum, and on the assumption
that a code element covered by failing tests should be treated as
suspicious. However, it is easy to see that this is an
over-approximation because many code elements may be executed that
do not contribute to the test output, hence serving as noise in
the process. A possible solution is to use backward dynamic
program slices as program spectra computed from the output
statement as the criterion, instead of the coverage. There are
very few theoretical and practical results about this approach, so
in this work we revisit the method and show how much more inferior
coverage-based spectra are compared to slice-based spectra, both
on theoretical and practical levels. We argue that code
coverage-based SBFL is currently in a research pit due to this
inherent approximation, and research on slice-based spectra should
once more attain a much higher focus.
Keywords:
Spectrum-Based Fault Localization, Automated
Debugging, Assertions, Backward Dynamic Program Slice
Back