Abstract

Bug localization aims to automatically locate the buggy source files according to the bug report, which plays an important role in software maintenance. Recent studies indicate that exploiting the program structure is beneficial for bug localization. Benefiting from the rich statement-level implementation detail in the Control Flow Graph (CFG), CFG-based bug localization methods have achieved state-of-the-art performance. However, due to the huge semantic gap between the high-level description of the unexpected program behavior in the bug report and the low-level implementation detail in the CFG, it is challenging to directly establish the match between the bug report and the CFG. In this paper, we argue that this gap can be bridged through the multi-level abstraction of the CFG, where each node in an abstraction level corresponds to a code block with a certain granularity. The multi-level abstraction of the CFG reflects the essence of the structured programming paradigm. We further propose a novel model named MLA (Multi-Level Abstraction of the control flow graph) for bug localization, which contains a particularly designed model that alternately propagates the block feature within and between abstraction levels, corresponding to reflecting the control flow and summarizing the block functionality, respectively. Experimental results on four widely-used open-source software projects show that MLA outperforms the state-of-the-art bug localization methods.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call