@article{Mondal-2019-An,
title = "An empirical study on bug propagation through code cloning",
author = "Mondal, Manishankar and
Roy, Banani and
Roy, Chanchal K. and
Schneider, Kevin A.",
journal = "Journal of Systems and Software, Volume 158",
volume = "158",
year = "2019",
publisher = "Elsevier BV",
url = "https://gwf-uwaterloo.github.io/gwf-publications/G19-123001",
doi = "10.1016/j.jss.2019.110407",
pages = "110407",
abstract = "Abstract Code clones are identical or nearly similar code fragments in a code-base. According to the existing studies, code clones are directly related to bugs. Code cloning, creating code clones, is suspected to propagate temporarily hidden bugs from one code fragment to another. However, there is no study on the intensity of bug-propagation through code cloning. In this paper, we define two clone evolutionary patterns that reasonably indicate bug propagation through code cloning. By analyzing software evolution history, we identify those code clones that evolved following the bug propagation patterns. According to our study on thousands of commits of seven subject systems, overall 18.42{\%} of the clone fragments that experience bug-fixes contain propagated bugs. Type-3 clones are primarily involved with bug-propagation. Bug propagation is more likely to occur in the clone fragments that are created in the same commit rather than in different commits. Moreover, code clones residing in the same file have a higher possibility of containing propagated bugs compared to those residing in different files. Severe bugs can sometimes get propagated through code cloning. Automatic support for immediately identifying occurrences of bug-propagation can be beneficial for software maintenance. Our findings are important for prioritizing code clones for management.",
}
<?xml version="1.0" encoding="UTF-8"?>
<modsCollection xmlns="http://www.loc.gov/mods/v3">
<mods ID="Mondal-2019-An">
<titleInfo>
<title>An empirical study on bug propagation through code cloning</title>
</titleInfo>
<name type="personal">
<namePart type="given">Manishankar</namePart>
<namePart type="family">Mondal</namePart>
<role>
<roleTerm authority="marcrelator" type="text">author</roleTerm>
</role>
</name>
<name type="personal">
<namePart type="given">Banani</namePart>
<namePart type="family">Roy</namePart>
<role>
<roleTerm authority="marcrelator" type="text">author</roleTerm>
</role>
</name>
<name type="personal">
<namePart type="given">Chanchal</namePart>
<namePart type="given">K</namePart>
<namePart type="family">Roy</namePart>
<role>
<roleTerm authority="marcrelator" type="text">author</roleTerm>
</role>
</name>
<name type="personal">
<namePart type="given">Kevin</namePart>
<namePart type="given">A</namePart>
<namePart type="family">Schneider</namePart>
<role>
<roleTerm authority="marcrelator" type="text">author</roleTerm>
</role>
</name>
<originInfo>
<dateIssued>2019</dateIssued>
</originInfo>
<typeOfResource>text</typeOfResource>
<genre authority="bibutilsgt">journal article</genre>
<relatedItem type="host">
<titleInfo>
<title>Journal of Systems and Software, Volume 158</title>
</titleInfo>
<originInfo>
<issuance>continuing</issuance>
<publisher>Elsevier BV</publisher>
</originInfo>
<genre authority="marcgt">periodical</genre>
<genre authority="bibutilsgt">academic journal</genre>
</relatedItem>
<abstract>Abstract Code clones are identical or nearly similar code fragments in a code-base. According to the existing studies, code clones are directly related to bugs. Code cloning, creating code clones, is suspected to propagate temporarily hidden bugs from one code fragment to another. However, there is no study on the intensity of bug-propagation through code cloning. In this paper, we define two clone evolutionary patterns that reasonably indicate bug propagation through code cloning. By analyzing software evolution history, we identify those code clones that evolved following the bug propagation patterns. According to our study on thousands of commits of seven subject systems, overall 18.42% of the clone fragments that experience bug-fixes contain propagated bugs. Type-3 clones are primarily involved with bug-propagation. Bug propagation is more likely to occur in the clone fragments that are created in the same commit rather than in different commits. Moreover, code clones residing in the same file have a higher possibility of containing propagated bugs compared to those residing in different files. Severe bugs can sometimes get propagated through code cloning. Automatic support for immediately identifying occurrences of bug-propagation can be beneficial for software maintenance. Our findings are important for prioritizing code clones for management.</abstract>
<identifier type="citekey">Mondal-2019-An</identifier>
<identifier type="doi">10.1016/j.jss.2019.110407</identifier>
<location>
<url>https://gwf-uwaterloo.github.io/gwf-publications/G19-123001</url>
</location>
<part>
<date>2019</date>
<detail type="volume"><number>158</number></detail>
<detail type="page"><number>110407</number></detail>
</part>
</mods>
</modsCollection>
%0 Journal Article
%T An empirical study on bug propagation through code cloning
%A Mondal, Manishankar
%A Roy, Banani
%A Roy, Chanchal K.
%A Schneider, Kevin A.
%J Journal of Systems and Software, Volume 158
%D 2019
%V 158
%I Elsevier BV
%F Mondal-2019-An
%X Abstract Code clones are identical or nearly similar code fragments in a code-base. According to the existing studies, code clones are directly related to bugs. Code cloning, creating code clones, is suspected to propagate temporarily hidden bugs from one code fragment to another. However, there is no study on the intensity of bug-propagation through code cloning. In this paper, we define two clone evolutionary patterns that reasonably indicate bug propagation through code cloning. By analyzing software evolution history, we identify those code clones that evolved following the bug propagation patterns. According to our study on thousands of commits of seven subject systems, overall 18.42% of the clone fragments that experience bug-fixes contain propagated bugs. Type-3 clones are primarily involved with bug-propagation. Bug propagation is more likely to occur in the clone fragments that are created in the same commit rather than in different commits. Moreover, code clones residing in the same file have a higher possibility of containing propagated bugs compared to those residing in different files. Severe bugs can sometimes get propagated through code cloning. Automatic support for immediately identifying occurrences of bug-propagation can be beneficial for software maintenance. Our findings are important for prioritizing code clones for management.
%R 10.1016/j.jss.2019.110407
%U https://gwf-uwaterloo.github.io/gwf-publications/G19-123001
%U https://doi.org/10.1016/j.jss.2019.110407
%P 110407
Markdown (Informal)
[An empirical study on bug propagation through code cloning](https://gwf-uwaterloo.github.io/gwf-publications/G19-123001) (Mondal et al., GWF 2019)
ACL
- Manishankar Mondal, Banani Roy, Chanchal K. Roy, and Kevin A. Schneider. 2019. An empirical study on bug propagation through code cloning. Journal of Systems and Software, Volume 158, 158:110407.