Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3183440.3195030acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
poster

The buggy side of code refactoring: understanding the relationship between refactorings and bugs

Published: 27 May 2018 Publication History

Abstract

Code refactoring is widely practiced by software developers. There is an explicit assumption that code refactoring improves the structural quality of a software project, thereby also reducing its bug proneness. However, refactoring is often applied with different purposes in practice. Depending on the complexity of certain refactorings, developers might unconsciously make the source code more susceptible to have bugs. In this paper, we present a longitudinal study of 5 Java open source projects, where 20,689 refactorings, and 1,033 bug reports were analyzed. We found that many bugs are introduced in the refactored code as soon as the first immediate change is made on it. Furthermore, code elements affected by refactorings performed in conjunction with other changes are more prone to have bugs than those affected by pure refactorings.

References

[1]
Gabriele Bavota et al. 2012. When does a refactoring induce bugs?. In SCAM.
[2]
Isabella Ferreira et al. 2018. Research website. (2018). https://isabellavieira57.github.io/icse2018
[3]
Martin Fowler. 1999. Refactoring. Addison-Wesley Professional.
[4]
Emerson Murphy-Hill, Chris Parnin, and Andrew P Black. 2012. How we refactor, and how we know it. TSE 38, 1 (2012).
[5]
F. Palomba et al. 2016. Smells Like Teen Spirit: Improving Bug Prediction Performance Using the Intensity of Code Smells. In ICSME.
[6]
Jacek Ratzinger, Thomas Sigmund, and Harald C Gall. 2008. On the relation of refactorings and software defect prediction. In MSR.
[7]
Jacek Śliwerski, Thomas Zimmermann, and Andreas Zeller. 2005. When do changes induce fixes?. In ACM SIGSOFT Software Engineering Notes (SEN). 1--5.
[8]
Peter Weißgerber and Stephan Diehl. 2006. Are refactorings less error-prone than other changes?. In MSR.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '18: Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings
May 2018
231 pages
ISBN:9781450356633
DOI:10.1145/3183440
  • Conference Chair:
  • Michel Chaudron,
  • General Chair:
  • Ivica Crnkovic,
  • Program Chairs:
  • Marsha Chechik,
  • Mark Harman
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 May 2018

Check for updates

Author Tags

  1. bug proneness
  2. empirical study
  3. refactoring
  4. software maintenance

Qualifiers

  • Poster

Funding Sources

  • CAPES/Procad
  • FAPERJ
  • CNPq

Conference

ICSE '18
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)27
  • Downloads (Last 6 weeks)2
Reflects downloads up to 02 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Automated Binary Program Partitioning through Structural Analysis2023 14th International Conference on Information, Intelligence, Systems & Applications (IISA)10.1109/IISA59645.2023.10345849(1-7)Online publication date: 10-Jul-2023
  • (2023)Composite refactoringInformation and Software Technology10.1016/j.infsof.2022.107134156:COnline publication date: 1-Apr-2023
  • (2023)Refactoring practices in the context of data-intensive systemsEmpirical Software Engineering10.1007/s10664-022-10271-x28:2Online publication date: 16-Feb-2023
  • (2022)An 80-20 Analysis of Buggy and Non-buggy Refactorings in Open-Source Commits2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)10.1109/SEAA56994.2022.00038(197-200)Online publication date: Aug-2022
  • (2022)Do Developers Refactor Data Access Code? An Empirical Study2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER53432.2022.00014(25-35)Online publication date: Mar-2022
  • (2021)An Empirical Study of Refactorings and Technical Debt in Machine Learning SystemsProceedings of the 43rd International Conference on Software Engineering10.1109/ICSE43902.2021.00033(238-250)Online publication date: 22-May-2021
  • (2019)A Quantitative Study on Characteristics and Effect of Batch Refactoring on Code Smells2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)10.1109/ESEM.2019.8870183(1-11)Online publication date: Sep-2019

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media