Identifying Code Clones Having High Possibilities of Containing Bugs
Code cloning has emerged as a controversial term in software engineering research and practice because of its positive and negative impacts on software evolution and maintenance. Researchers suggest managing code clones through refactoring and tracking. Given the huge number of code clones in a soft...
Saved in:
| Published in | 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC) pp. 99 - 109 |
|---|---|
| Main Authors | , , |
| Format | Conference Proceeding |
| Language | English |
| Published |
IEEE
01.05.2017
|
| Subjects | |
| Online Access | Get full text |
| DOI | 10.1109/ICPC.2017.31 |
Cover
| Abstract | Code cloning has emerged as a controversial term in software engineering research and practice because of its positive and negative impacts on software evolution and maintenance. Researchers suggest managing code clones through refactoring and tracking. Given the huge number of code clones in a software system's code-base, it is essential to identify the most important ones to manage. In our research, we investigate which clone fragments have high possibilities of containing bugs so that such clones can be prioritized for refactoring and tracking to help minimize future bug-fixing tasks. Existing studies on clone bug-proneness cannot pinpoint code clones that are likely to experience bug-fixes in the future. According to our analysis on thousands of revisions of four diverse subject systems written in Java, change frequency of code clones does not indicate their bug-proneness (i.e., does not indicate their tendencies of experiencing bug-fixes in future). Bug-proneness is mainly related with change recency of code clones. In other words, more recently changed code clones have a higher possibility of containing bugs. Moreover, for the code clones that were not changed previously we observed that clones that were created more recently have higher possibilities of experiencing bug-fixes. Thus, our research reveals the fact that bug-proneness of code clones mainly depends on how recently they were changed or created (for the ones that were not changed before). It invalidates the common intuition regarding the relatedness between high change frequency and bug-proneness. We believe that code clones should be prioritized for management considering their change recency or recency of creation (for the unchanged ones). |
|---|---|
| AbstractList | Code cloning has emerged as a controversial term in software engineering research and practice because of its positive and negative impacts on software evolution and maintenance. Researchers suggest managing code clones through refactoring and tracking. Given the huge number of code clones in a software system's code-base, it is essential to identify the most important ones to manage. In our research, we investigate which clone fragments have high possibilities of containing bugs so that such clones can be prioritized for refactoring and tracking to help minimize future bug-fixing tasks. Existing studies on clone bug-proneness cannot pinpoint code clones that are likely to experience bug-fixes in the future. According to our analysis on thousands of revisions of four diverse subject systems written in Java, change frequency of code clones does not indicate their bug-proneness (i.e., does not indicate their tendencies of experiencing bug-fixes in future). Bug-proneness is mainly related with change recency of code clones. In other words, more recently changed code clones have a higher possibility of containing bugs. Moreover, for the code clones that were not changed previously we observed that clones that were created more recently have higher possibilities of experiencing bug-fixes. Thus, our research reveals the fact that bug-proneness of code clones mainly depends on how recently they were changed or created (for the ones that were not changed before). It invalidates the common intuition regarding the relatedness between high change frequency and bug-proneness. We believe that code clones should be prioritized for management considering their change recency or recency of creation (for the unchanged ones). |
| 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. & Eng., 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. & Eng., 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. & Eng., Univ. of Saskatchewan, Saskatoon, SK, Canada |
| BookMark | eNotjDtPwzAUhY0EAy1sbCz5Awm-cfwawTwSqRIdOrBVN_F1sBQc1ASk_ntS0elI3_nOWbHLNCZi7A54AcDtQ-O2rig56ELABVuBFEZxKeTHNXtuPKU5hmNMfeZGT5kblvGU1fh7QnXsP7PtOE2xjUOc49KMYRHTjDGdhKeffrphVwGHiW7PuWa715edq_PN-1vjHjc5lhXMuRUSZeWxNIG6rmx9xXlHQRrQUiuFpg0taTQYrEfoWo7WlpJ85cGD4mLN7v9vIxHtvw_xCw_HvbYKJDfiD05FRq8 |
| CODEN | IEEPAD |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IL CBEJK RIE RIL |
| DOI | 10.1109/ICPC.2017.31 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Xplore POP ALL IEEE Xplore All Conference Proceedings IEEE Electronic Library IEEE Proceedings Order Plans (POP All) 1998-Present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| EISBN | 153860535X 9781538605356 |
| EndPage | 109 |
| ExternalDocumentID | 7961508 |
| Genre | orig-research |
| GroupedDBID | 6IE 6IL CBEJK RIE RIL |
| ID | FETCH-LOGICAL-a241t-935a54da28fecc2bd400cef58175766a8bfbe7a8af9da1cb0a9925ed4d1d1603 |
| IEDL.DBID | RIE |
| IngestDate | Thu Jun 29 18:38:04 EDT 2023 |
| IsPeerReviewed | false |
| IsScholarly | false |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a241t-935a54da28fecc2bd400cef58175766a8bfbe7a8af9da1cb0a9925ed4d1d1603 |
| PageCount | 11 |
| ParticipantIDs | ieee_primary_7961508 |
| PublicationCentury | 2000 |
| PublicationDate | 2017-May |
| PublicationDateYYYYMMDD | 2017-05-01 |
| PublicationDate_xml | – month: 05 year: 2017 text: 2017-May |
| PublicationDecade | 2010 |
| PublicationTitle | 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC) |
| PublicationTitleAbbrev | ICPC |
| PublicationYear | 2017 |
| Publisher | IEEE |
| Publisher_xml | – name: IEEE |
| Score | 1.7269198 |
| Snippet | Code cloning has emerged as a controversial term in software engineering research and practice because of its positive and negative impacts on software... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 99 |
| SubjectTerms | Change Frequency Change Recency Clone Bug-proneness Cloning Code Clones Computer bugs Java Maintenance engineering Software systems |
| Title | Identifying Code Clones Having High Possibilities of Containing Bugs |
| URI | https://ieeexplore.ieee.org/document/7961508 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV09T8MwED21nZgAtYhveWAkKXEdJ14JVAWpqEORulW-2GYANYgmC7--5yQEhBjYrCyx72Q9n_3uPYAryYVxhutATIwIBNIIMdKBQWlTAkwCcf-iO3-Ss2fxuIpXPbjuemGstTX5zIZ-WL_lmyKv_FXZOFG1fHkf-kkqm16tjsuuxg_ZIvNcrST0jnE_vFJqqJjuw_zrJw1D5DWsSgzzz1_6i_-dxQGMvpvy2KKDm0Po2c0Q7ppG27pZiWWFsSx78-r7bKb9TQHzNA62KLYtCZbKYlY45iWpGmcIdlu9bEewnN4vs1nQGiMEmgC3DNQk1rEwmqeOMsDR0EbMrYspuFQ-SJ2iQ5voVDtldJTjjVaKx9YIExlvK30Egw3N5RhYEivDk0hTSU1HE4taThwljMoajilKfgJDH4D1eyN9sW7Xfvr35zPY8_Fv-IDnMCg_KntBmF3iZZ2sHYZtmiU |
| linkProvider | IEEE |
| linkToHtml | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV07T8MwED6VMsAEqEW88cBIUuLaSbwSqFJoqw5F6hbZsc0AahBNFn4956QEhBjYrCxxfLK-nP09AK5CyrTVVHpsqJnHFI6UCqSnVWhiBEwEcXejO52F6RN7WPJlB65bLYwxpiafGd8N67t8XeSVOyobRKK2L9-Cbc4Y441aq2Wzi8E4mSeOrRX5LjPuR1pKDRajPZh-vabhiLz4Van8_OOXA-N_57EP_W9ZHpm3gHMAHbPqwV0jta3lSiQptCHJq_PfJ6l0ZwXEETnIvFhvaLDYGJPCEmdK1WRDkNvqed2Hxeh-kaTeJhrBkwi5pSeGXHKmJY0t1oAqjVsxN5bj8mIDEcpYWWUiGUsrtAxydSOFoNxopgPtgqUPobvCuRwBibjQNAokNtX4c2KUDIcWS4aNDVWxCukx9NwCZG-N-UW2-faTvx9fwk66mE6yyXj2eAq7rhYNO_AMuuV7Zc4RwUt1URfuE8hTnXI |
| 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=2017+IEEE%2FACM+25th+International+Conference+on+Program+Comprehension+%28ICPC%29&rft.atitle=Identifying+Code+Clones+Having+High+Possibilities+of+Containing+Bugs&rft.au=Mondal%2C+Manishankar&rft.au=Roy%2C+Chanchal+K.&rft.au=Schneider%2C+Kevin+A.&rft.date=2017-05-01&rft.pub=IEEE&rft.spage=99&rft.epage=109&rft_id=info:doi/10.1109%2FICPC.2017.31&rft.externalDocID=7961508 |