Publication Type
Conference Proceeding Article
Version
publishedVersion
Publication Date
10-2013
Abstract
What is the root cause of this failure? This question is often among the first few asked by software debuggers when they try to address issues raised by a bug report. Root cause is the erroneous lines of code that cause a chain of erroneous program states eventually leading to the failure. Bug tracking and source control systems only record the symptoms (e.g., bug reports) and treatments of a bug (e.g., committed changes that fix the bug), but not its root cause. Many treatments contain non-essential changes, which are intermingled with root causes. Reverse engineering the root cause of a bug can help to understand why the bug is introduced and help to detect and prevent other bugs of similar causes. The recovered root causes are also better ground truth for bug detection and localization studies. In this work, we propose a combination of machine learning and code analysis techniques to identify root causes from the changes made to fix bugs. We evaluate the effectiveness of our approach based on a golden set (i.e., ground truth data) of manually recovered root causes of 200 bug reports from three open source projects. Our approach is able to achieve a precision, recall, and F-measure (i.e., the harmonic mean of precision and recall) of 76.42%, 71.88%, and 74.08% respectively. Compared with the work by Kawrykow and Robillard, our approach achieves a 60.83% improvement in F-measure.
Keywords
learning (artificial intelligence), program debugging, program diagnostics, reverse engineering
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
2013 20th Working Conference on Reverse Engineering (WCRE 2013): Proceedings: Koblenz, Germany, 14-17 October 2013
First Page
92
Last Page
101
ISBN
9781479929320
Identifier
10.1109/WCRE.2013.6671284
Publisher
IEEE
City or Country
Piscataway, NJ
Citation
THUNG, Ferdian; LO, David; and JIANG, Lingxiao.
Automatic recovery of root causes from bug-fixing changes. (2013). 2013 20th Working Conference on Reverse Engineering (WCRE 2013): Proceedings: Koblenz, Germany, 14-17 October 2013. 92-101.
Available at: https://ink.library.smu.edu.sg/sis_research/2025
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
http://doi.org/10.1109/WCRE.2013.6671284