ABSTRACT
Software developers review changes to a code base to prevent new bugs from being introduced. However, some parts of a change are more likely to introduce bugs than others, and thus deserve more care in reviewing. In this short paper, we discuss our ongoing work to build a reviewing tool that automatically determines which changes in a change set are refactorings, uses this information to help the developer distinguish between refactoring and non-refactoring changes, and ultimately reduces the time it takes developers to review code accurately. We also discuss the challenges and opportunities we have faced when building this refactoring-aware code review tool.
- A. Bacchelli and C. Bird. Expectations, outcomes, and challenges of modern code review. In Proceedings of the 35th International Conference on Software Engineering, 2013. Google ScholarDigital Library
- D. Dig, C. Comertoglu, D. Marinov, and R. Johnson. Automated detection of refactorings in evolving components. In Proceedings of ECOOP, pages 404–428, 2006. Google ScholarDigital Library
- D. Engler, B. Chelf, A. Chou, and S. Hallem. Checking system rules using system-specific, programmer-written compiler extensions. In Proceedings of the Symposium on Operating System Design & Implementation. USENIX, 2000. Google ScholarDigital Library
- N. E. Fenton and N. Ohlsson. Quantitative analysis of faults and failures in a complex software system. Software Engineering, IEEE Transactions on, 26(8):797–814, 2000. Google ScholarDigital Library
- B. Fluri, M. Wursch, M. Pinzger, and H. Gall. Change distilling:tree differencing for fine-grained source code change extraction. Software Engineering, IEEE Transactions on, 33(11):725–743, 2007. Google ScholarDigital Library
- X. Ge, Q. L. DuBose, and E. Murphy-Hill. Reconciling manual and automatic refactoring. In Proceedings of the 2012 International Conference on Software Engineering, pages 211–221, 2012. Google ScholarDigital Library
- M. Kim, T. Zimmermann, and N. Nagappan. A field study of refactoring challenges and benefits. In Proceedings of FSE ’12, pages 1–11, 2012. Google ScholarDigital Library
- S. Letovsky and E. Soloway. Delocalized plans and program comprehension. Software, IEEE, 3(3):41–49, 1986. Google ScholarDigital Library
- E. Murphy-Hill, C. Parnin, and A. P. Black. How we refactor, and how we know it. Software Engineering, IEEE Transactions on, 38(1):5–18, 2012. Google ScholarDigital Library
- K. Prete, N. Rachatasumrit, N. Sudan, and M. Kim. Template-based reconstruction of complex refactorings. In Software Maintenance (ICSM), 2010 IEEE International Conference on, pages 1–10, 2010. Google ScholarDigital Library
- Z. Xing and E. Stroulia. Refactoring practice: How it is and how it should be supported-an Eclipse case study. In International Conference on Software Maintenance, pages 458–468. IEEE, 2006. Google ScholarDigital Library
Index Terms
- Towards refactoring-aware code review
Recommendations
Code review practices for refactoring changes: an empirical study on OpenStack
MSR '22: Proceedings of the 19th International Conference on Mining Software RepositoriesModern code review is a widely used technique employed in both industrial and open-source projects to improve software quality, share knowledge, and ensure adherence to coding standards and guidelines. During code review, developers may discuss ...
Prioritising Refactoring Using Code Bad Smells
ICSTW '11: Proceedings of the 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation WorkshopsWe investigated the relationship between six of Fowler et al.'s Code Bad Smells (Duplicated Code, Data Clumps, Switch Statements, Speculative Generality, Message Chains, and Middle Man) and software faults. In this paper we discuss how our results can ...
Code Bad Smells: a review of current knowledge
Fowler et al. identified 22 Code Bad Smells to direct the effective refactoring of code. These are increasingly being taken up by software engineers. However, the empirical basis of using Code Bad Smells to direct refactoring and to address ‘trouble’ in ...
Comments