Automatic recovery of root causes from bug-fixing changes

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 track...

Full description

Saved in:
Bibliographic Details
Main Authors: THUNG, Ferdian, LO, David, JIANG, Lingxiao
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2013
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/2025
https://ink.library.smu.edu.sg/context/sis_research/article/3024/viewcontent/wcre13_rootcause.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-3024
record_format dspace
spelling sg-smu-ink.sis_research-30242017-02-04T22:28:37Z Automatic recovery of root causes from bug-fixing changes THUNG, Ferdian LO, David JIANG, Lingxiao 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. 2013-10-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/2025 info:doi/10.1109/WCRE.2013.6671284 https://ink.library.smu.edu.sg/context/sis_research/article/3024/viewcontent/wcre13_rootcause.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University learning (artificial intelligence) program debugging program diagnostics reverse engineering Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic learning (artificial intelligence)
program debugging
program diagnostics
reverse engineering
Software Engineering
spellingShingle learning (artificial intelligence)
program debugging
program diagnostics
reverse engineering
Software Engineering
THUNG, Ferdian
LO, David
JIANG, Lingxiao
Automatic recovery of root causes from bug-fixing changes
description 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.
format text
author THUNG, Ferdian
LO, David
JIANG, Lingxiao
author_facet THUNG, Ferdian
LO, David
JIANG, Lingxiao
author_sort THUNG, Ferdian
title Automatic recovery of root causes from bug-fixing changes
title_short Automatic recovery of root causes from bug-fixing changes
title_full Automatic recovery of root causes from bug-fixing changes
title_fullStr Automatic recovery of root causes from bug-fixing changes
title_full_unstemmed Automatic recovery of root causes from bug-fixing changes
title_sort automatic recovery of root causes from bug-fixing changes
publisher Institutional Knowledge at Singapore Management University
publishDate 2013
url https://ink.library.smu.edu.sg/sis_research/2025
https://ink.library.smu.edu.sg/context/sis_research/article/3024/viewcontent/wcre13_rootcause.pdf
_version_ 1770571775412797440