Using Contextual Knowledge in Interactive Fault Localization
Ferenc Horváth, Árpád
Beszédes, Béla Vancsics, Gergő
Balogh, László Vidács and
Tibor Gyimóthy
Tool support for automated fault localization in program
debugging is limited because state-of-the-art algorithms often
fail to provide efficient help to the user. They usually offer a
ranked list of suspicious code elements, but the fault is not
guaranteed to be found among the highest ranks. In Spectrum-Based
Fault Localization (SBFL) – which uses code coverage information
of test cases and their execution outcomes to calculate the ranks
–, the developer has to investigate several locations before
finding the faulty code element. Yet, all the knowledge she a
priori has or acquires during this process is not reused by the
SBFL tool. There are existing approaches in which the developer
interacts with the SBFL algorithm by giving feedback on the
elements of the prioritized list. We propose a new approach called
iFL which extends interactive approaches by exploiting contextual
knowledge of the user about the next item in the ranked list (e.
g., a statement), with which larger code entities (e. g., a whole
function) can be repositioned in their suspiciousness. We
implemented a closely related algorithm proposed by Gong et al.,
called Talk. First, we evaluated iFL using simulated users, and
compared the results to SBFL and Talk. Next, we introduced two
types of imperfections in the simulation: user’s knowledge and
confidence levels. On SIR and Defects4J, results showed notable
improvements in fault localization efficiency, even with strong
user imperfections. We then empirically evaluated the
effectiveness of the approach with real users in two sets of
experiments: a quantitative evaluation of the successfulness of
using iFL, and a qualitative evaluation of practical uses of the
approach with experienced developers in think-aloud sessions.
Keywords: Spectrum-Based
Fault Localization, automated debugging, interactive debugging,
user simulation, user study, think-aloud sessions.
Back