Break the dead end of dynamic slicing: localizing data and control omission bug

Dynamic slicing is a common way of identifying the root cause when a program fault is revealed. With the dynamic slicing technique, the programmers can follow data and control flow along the program execution trace to the root cause. However, the technique usually fails to work on omission bugs, i.e...

Full description

Saved in:
Bibliographic Details
Main Authors: LIN, Yun, SUN, Jun, TRAN, Lyly, BAI, Guangdong, WANG, Haijun, DONG, Jin Song
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2018
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/4654
https://ink.library.smu.edu.sg/context/sis_research/article/5657/viewcontent/3238147.3238163.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-5657
record_format dspace
spelling sg-smu-ink.sis_research-56572020-01-02T07:44:19Z Break the dead end of dynamic slicing: localizing data and control omission bug LIN, Yun SUN, Jun TRAN, Lyly BAI, Guangdong WANG, Haijun DONG, Jin Song Dynamic slicing is a common way of identifying the root cause when a program fault is revealed. With the dynamic slicing technique, the programmers can follow data and control flow along the program execution trace to the root cause. However, the technique usually fails to work on omission bugs, i.e., the faults which are caused by missing executing some code. In many cases, dynamic slicing over-skips the root cause when an omission bug happens, leading the debugging process to a dead end. In this work, we conduct an empirical study on the omission bugs in the Defects4J bug repository. Our study shows that (1) omission bugs are prevalent (46.4%) among all the studied bugs; (2) there are repeating patterns on causes and fixes of the omission bugs; (3) the patterns of fixing omission bugs serve as a strong hint to break the slicing dead end. Based on our findings, we train a neural network model on the omission bugs in Defects4J repository to recommend where to approach when slicing can no long work. We conduct an experiment by applying our approach on 3193 mutated omission bugs which slicing fails to locate. The results show that our approach outperforms random benchmark on breaking the dead end and localizing the mutated omission bugs (63.8% over 2.8%). 2018-09-07T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/4654 info:doi/10.1145/3238147.3238163 https://ink.library.smu.edu.sg/context/sis_research/article/5657/viewcontent/3238147.3238163.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 debugging program slice omission error empirical study Programming Languages and Compilers Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic debugging
program slice
omission error
empirical study
Programming Languages and Compilers
Software Engineering
spellingShingle debugging
program slice
omission error
empirical study
Programming Languages and Compilers
Software Engineering
LIN, Yun
SUN, Jun
TRAN, Lyly
BAI, Guangdong
WANG, Haijun
DONG, Jin Song
Break the dead end of dynamic slicing: localizing data and control omission bug
description Dynamic slicing is a common way of identifying the root cause when a program fault is revealed. With the dynamic slicing technique, the programmers can follow data and control flow along the program execution trace to the root cause. However, the technique usually fails to work on omission bugs, i.e., the faults which are caused by missing executing some code. In many cases, dynamic slicing over-skips the root cause when an omission bug happens, leading the debugging process to a dead end. In this work, we conduct an empirical study on the omission bugs in the Defects4J bug repository. Our study shows that (1) omission bugs are prevalent (46.4%) among all the studied bugs; (2) there are repeating patterns on causes and fixes of the omission bugs; (3) the patterns of fixing omission bugs serve as a strong hint to break the slicing dead end. Based on our findings, we train a neural network model on the omission bugs in Defects4J repository to recommend where to approach when slicing can no long work. We conduct an experiment by applying our approach on 3193 mutated omission bugs which slicing fails to locate. The results show that our approach outperforms random benchmark on breaking the dead end and localizing the mutated omission bugs (63.8% over 2.8%).
format text
author LIN, Yun
SUN, Jun
TRAN, Lyly
BAI, Guangdong
WANG, Haijun
DONG, Jin Song
author_facet LIN, Yun
SUN, Jun
TRAN, Lyly
BAI, Guangdong
WANG, Haijun
DONG, Jin Song
author_sort LIN, Yun
title Break the dead end of dynamic slicing: localizing data and control omission bug
title_short Break the dead end of dynamic slicing: localizing data and control omission bug
title_full Break the dead end of dynamic slicing: localizing data and control omission bug
title_fullStr Break the dead end of dynamic slicing: localizing data and control omission bug
title_full_unstemmed Break the dead end of dynamic slicing: localizing data and control omission bug
title_sort break the dead end of dynamic slicing: localizing data and control omission bug
publisher Institutional Knowledge at Singapore Management University
publishDate 2018
url https://ink.library.smu.edu.sg/sis_research/4654
https://ink.library.smu.edu.sg/context/sis_research/article/5657/viewcontent/3238147.3238163.pdf
_version_ 1770574951408992256