Bug Propagation through Code Cloning: An Empirical Study
Code clones are defined to be the identical or nearly similar code fragments in a code-base. According to a number of existing studies, code clones are directly related to bugs and inconsistencies in software systems. Code cloning (i.e., creating code clones) is suspected to propagate temporarily hi...
Saved in:
Published in | ICSME 2017 : proceedings : 2017 IEEE International Conference on Software Maintenance and Evolution : 19-22 September 2017, Shanghai, China pp. 227 - 237 |
---|---|
Main Authors | , , |
Format | Conference Proceeding |
Language | English |
Published |
IEEE
01.09.2017
|
Subjects | |
Online Access | Get full text |
DOI | 10.1109/ICSME.2017.33 |
Cover
Abstract | Code clones are defined to be the identical or nearly similar code fragments in a code-base. According to a number of existing studies, code clones are directly related to bugs and inconsistencies in software systems. Code cloning (i.e., 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 present our empirical study on bug-propagation through code cloning. We define two clone evolution patterns that reasonably indicate bug propagation through code cloning. We first identify code clones that experienced bug-fix changes by analyzing software evolution history, and then determine which of these code clones evolved following the bug propagation patterns. According to our study on thousands of commits of four open-source subject systems written in Java, up to 33% of the clone fragments that experience bug-fix changes can contain propagated bugs. Around 28.57% of the bug-fixes experienced by the code clones can occur for fixing propagated bugs. We also find that near-miss clones are primarily involved with bug-propagation rather than identical clones. The clone fragments involved with bug propagation are mostly method clones. Bug propagation is more likely to occur in the clone fragments that are created in the same commit operation rather than in different commits. Our findings are important for prioritizing code clones for refactoring and tracking from the perspective of bug propagation. |
---|---|
AbstractList | Code clones are defined to be the identical or nearly similar code fragments in a code-base. According to a number of existing studies, code clones are directly related to bugs and inconsistencies in software systems. Code cloning (i.e., 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 present our empirical study on bug-propagation through code cloning. We define two clone evolution patterns that reasonably indicate bug propagation through code cloning. We first identify code clones that experienced bug-fix changes by analyzing software evolution history, and then determine which of these code clones evolved following the bug propagation patterns. According to our study on thousands of commits of four open-source subject systems written in Java, up to 33% of the clone fragments that experience bug-fix changes can contain propagated bugs. Around 28.57% of the bug-fixes experienced by the code clones can occur for fixing propagated bugs. We also find that near-miss clones are primarily involved with bug-propagation rather than identical clones. The clone fragments involved with bug propagation are mostly method clones. Bug propagation is more likely to occur in the clone fragments that are created in the same commit operation rather than in different commits. Our findings are important for prioritizing code clones for refactoring and tracking from the perspective of bug propagation. |
Author | Mondal, Manishankar Roy, Chanchal K. Schneider, Kevin A. |
Author_xml | – sequence: 1 givenname: Manishankar surname: Mondal fullname: Mondal, Manishankar email: mshankar.mondal@usask.ca organization: Dept. of Comput. Sci., Univ. of Saskatchewan, Saskatoon, SK, Canada – sequence: 2 givenname: Chanchal K. surname: Roy fullname: Roy, Chanchal K. email: chanchal.roy@usask.ca organization: Dept. of Comput. Sci., Univ. of Saskatchewan, Saskatoon, SK, Canada – sequence: 3 givenname: Kevin A. surname: Schneider fullname: Schneider, Kevin A. email: kevin.schneider@usask.ca organization: Dept. of Comput. Sci., Univ. of Saskatchewan, Saskatoon, SK, Canada |
BookMark | eNotzLtOwzAUAFAjgQQtHZlY_AMJvn6brUQpVCpqpcJcOYmdGqV2lMfQv2eA6WxngW5jig6hJyA5ADEv2-L4WeaUgMoZu0ELEExLYgzl92g1jj-EEDBSc64fkH6bW3wYUm9bO4UU8XQe0tyecZEah4suxRDbV7yOuLz0YQi17fBxmpvrI7rzthvd6t8l-t6UX8VHttu_b4v1LgugxJRVXDWuEpXxpKo1SN5oyhzTVBgiag_WKWl87aUV2koqjfUN1eCt4pKCVWyJnv_e4Jw79UO42OF60sRwTjn7BevbRTM |
CODEN | IEEPAD |
ContentType | Conference Proceeding |
DBID | 6IE 6IH CBEJK RIE RIO |
DOI | 10.1109/ICSME.2017.33 |
DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Proceedings Order Plan (POP) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP) 1998-present |
DatabaseTitleList | |
Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/ sourceTypes: Publisher |
DeliveryMethod | fulltext_linktorsrc |
Discipline | Computer Science |
EISBN | 1538609924 9781538609927 |
EndPage | 237 |
ExternalDocumentID | 8094424 |
Genre | orig-research |
GroupedDBID | 6IE 6IF 6IG 6IH 6IK 6IL 6IM 6IN AAJGR AAWTH ABLEC ABQGA ALMA_UNASSIGNED_HOLDINGS BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK IEGSK IJVOP OCL RIB RIC RIE RIL RIO |
ID | FETCH-LOGICAL-i175t-b47deb5b9f0bc8164d823e3825905cf1ae769fcf6a58a6269afd281fa74621a73 |
IEDL.DBID | RIE |
IngestDate | Wed Aug 27 02:31:27 EDT 2025 |
IsPeerReviewed | false |
IsScholarly | false |
Language | English |
LinkModel | DirectLink |
MergedId | FETCHMERGED-LOGICAL-i175t-b47deb5b9f0bc8164d823e3825905cf1ae769fcf6a58a6269afd281fa74621a73 |
PageCount | 11 |
ParticipantIDs | ieee_primary_8094424 |
PublicationCentury | 2000 |
PublicationDate | 2017-Sept. |
PublicationDateYYYYMMDD | 2017-09-01 |
PublicationDate_xml | – month: 09 year: 2017 text: 2017-Sept. |
PublicationDecade | 2010 |
PublicationTitle | ICSME 2017 : proceedings : 2017 IEEE International Conference on Software Maintenance and Evolution : 19-22 September 2017, Shanghai, China |
PublicationTitleAbbrev | ICSM |
PublicationYear | 2017 |
Publisher | IEEE |
Publisher_xml | – name: IEEE |
SSID | ssj0001968448 |
Score | 1.7723663 |
Snippet | Code clones are defined to be the identical or nearly similar code fragments in a code-base. According to a number of existing studies, code clones are... |
SourceID | ieee |
SourceType | Publisher |
StartPage | 227 |
SubjectTerms | Bug Propagation Clone Prioritization Cloning Code Clones Computer bugs History Java Software systems |
Title | Bug Propagation through Code Cloning: An Empirical Study |
URI | https://ieeexplore.ieee.org/document/8094424 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1NS8NAEF1qT56qtuI3e_Bo0ibZbHa9aWipQkXQQm8lu5mVoqZFkoP-emc3aSviwVsIgSwzm515kzdvCLkUsYIItPEYxgaPMSY9RLaBF0sFHNPrPHC6BZMHPp6y-1k8a5GrTS8MADjyGfj20v3Lz5e6sqWyvkAswkK2Q3Zwm9W9Wtt6iuQCocZWRrN_lz5Nhpa8lfh2LO6P4Skudow6ZLJ-a00ZefWrUvn665cg43-XtUd62y49-riJP_ukBcUB6azHNNDmq-0ScVu92Afx6HBuoM1sHpouc6DpmyvIXtObgg7fVwsnGUItvfCzR6aj4XM69pqBCd4Cs4DSUyzJQcVKmoHSAq2cizCCCEGgHMTaBBkkXBpteBaLDJGMzEweisBkCeNhkCXRIWkXywKOCA0xUQnRiwFThilM86TJlOCgA60NpmTHpGsNMV_VmhjzxgYnf98-JbvWDzU364y0y48KzjGYl-rCefEbl7WerQ |
linkProvider | IEEE |
linkToHtml | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1NT4NAEJ3UetBT1db47R48Ci2wwK43bWpaLY2JbdJbwy67plFpY-Cgv95ZoK0xHrwRQgKZCbyZ4c17AFfMF8pTUlsUscGilHILO1vH8rlQAZbXiVPoFkSjoD-hD1N_WoPr9S6MUqognynbHBb_8pOFzM2orM2wF6Eu3YJtxH3ql9tam4kKDxg2Gxshzfag-xz1DH0rtI0x7g_7lAI97hsQre5bkkZe7TwTtvz6Jcn43wfbg9ZmT488rRFoH2oqPYDGyqiBVO9tE9hd_mIuxI9HkQhSufOQ7iJRpPtWjGRvyG1Keu_LeSEaQgzB8LMFk_veuNu3KssEa451QGYJGiZK-ILrjpAM45ww11MetoG840vtxCoMuJY6iH0WYy_DY524zNFxSAPXiUPvEOrpIlVHQFwsVVzMo0OFpgILPa5jwQIlHSk1FmXH0DSBmC1LVYxZFYOTv09fwk5_HA1nw8Ho8RR2TU5KptYZ1LOPXJ0jtGfiosjoNxf_ofo |
openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=ICSME+2017+%3A+proceedings+%3A+2017+IEEE+International+Conference+on+Software+Maintenance+and+Evolution+%3A+19-22+September+2017%2C+Shanghai%2C+China&rft.atitle=Bug+Propagation+through+Code+Cloning%3A+An+Empirical+Study&rft.au=Mondal%2C+Manishankar&rft.au=Roy%2C+Chanchal+K.&rft.au=Schneider%2C+Kevin+A.&rft.date=2017-09-01&rft.pub=IEEE&rft.spage=227&rft.epage=237&rft_id=info:doi/10.1109%2FICSME.2017.33&rft.externalDocID=8094424 |