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...
Saved in:
Main Authors: | , , |
---|---|
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 |