Method Calls Frequency-Based Tie-Breaking Strategy For Software
Fault Localization
Qusay Idrees Sarhan,
Béla Vancsics and
Árpád Beszédes
In Spectrum-Based Fault Localization (SBFL), a
suspiciousness score is assigned to each code element based on
test coverage and test outcomes. The scores are then used to rank
the code elements relative to each other in order to aid the
programmer during the debugging process when seeking the source of
a fault. However, probably none of the known SBFL formulae are
guaranteed to produce different scores for all the program
elements, hence ties emerge between the code elements. Based on
our experiments, ties in SBFL are prevalent: in Defects4J, 54–56%
of buggy methods are members of ties, i.e., there is at least one
other method with the same score in these cases (but typically
much more, on average 6), and this inevitably reduces the
effectiveness of any SBFL approach. In this work, we present a
technique to break ties in such cases based on the so-called
method calls frequencies. This counts the number of different
contexts of method calls (both as callees and as callers) in
failing test cases. The intuition is that if a method appears in
many different calling contexts during a failing test case, it
will be more suspicious and get a higher rank position compared to
other methods with the same scores. This method can be applied to
any underlying SBFL formula, and can favourably break the
occurring ranks in the ties in many cases. The experimental
results show that our novel tie-breaking strategy achieved a
significant reduction in both size and number of critical ties in
our benchmark. In 72-73% of the cases, the ties were
completely eliminated and the average reduction rate was more than
80%.
Keywords: Spectrum-Based
Fault Localization, Rank Tie Breaking, Call Frequency-Based Fault
Localization.
Back