Litcius/Paper detail

Leveraging Contextual Information from Function Call Chains to Improve Fault Localization

Árpád Beszédes, Ferenc Horváth, Massimiliano Di Penta, Tibor Gyimóthy

202023 citationsDOI

Abstract

In Spectrum Based Fault Localization, program elements such as statements or functions are ranked according to a suspiciousness score which can guide the programmer in finding the fault more efficiently. However, such a ranking does not include any additional information about the suspicious code elements. In this work, we propose to complement function-level spectrum based fault localization with function call chains - i.e., snapshots of the call stack occurring during execution - on which the fault localization is first performed, and then narrowed down to functions. Our experiments using defects from Defects4J show that (i) 69% of the defective functions can be found in call chains with highest scores, (ii) in 4 out of 6 cases the proposed approach can improve Ochiai ranking of 1 to 9 positions on average, with a relative improvement of 19–48%, and (iii) the improvement is substantial (66–98%) when Ochiai produces bad rankings for the faulty functions.

Topics & Concepts

ProgrammerComputer scienceRanking (information retrieval)Fault (geology)Complement (music)Function (biology)Code (set theory)Call stackData miningTheoretical computer scienceAlgorithmStack (abstract data type)Artificial intelligenceProgramming languageBiologyGeneSeismologyBiochemistryPhenotypeEvolutionary biologyChemistryComplementationGeologySet (abstract data type)Software Testing and Debugging TechniquesSoftware System Performance and ReliabilitySoftware Reliability and Analysis Research