Refactoring-Aware Code Review: A Systematic Mapping Study

Modern Code Review (MCR) demands enhancements in the way change logs are presented to reviewers. Their task benefits from higher-level descriptions about the intention behind commits; for instance, evolution tasks, such as refactorings, could be more effectively reviewed in the presence of the intended transformation – better if automatically detected by MCR tool support. This paper presents a systematic literature mapping (combining results from search strings, snowballing and a two-phase classification scheme) on refactoring-aware solutions to support MCR. We could observe that, since 2015, interest in tools and techniques for automatic detection of refactorings has been steadily growing. Most publications refer to new development methods or carry out characterisation studies. As a consequence of this overview, we point out a few potential research topics for the next years. In special, detection of multiple refactoring types in a mixed change log (in which refactorings are combined with other kinds of changes), or the need for case studies or experiments in applying refactoring detection in MCR, on distinct application domains and development environments.

[1]  Miryung Kim,et al.  Interactive Code Review for Systematic Changes , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[2]  Bo Guo,et al.  Interactively Decomposing Composite Changes to Support Code Review and Regression Testing , 2017, 2017 IEEE 41st Annual Computer Software and Applications Conference (COMPSAC).

[3]  Miryung Kim,et al.  Discovering and representing systematic code changes , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[4]  Kurt Schneider,et al.  Factors influencing code review processes in industry , 2016, SIGSOFT FSE.

[5]  Gabriele Bavota,et al.  When Does a Refactoring Induce Bugs? An Empirical Study , 2012, 2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation.

[6]  Claes Wohlin,et al.  Guidelines for snowballing in systematic literature studies and a replication in software engineering , 2014, EASE '14.

[7]  Romain Robbes,et al.  Characterizing and Understanding Development Sessions , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[8]  Kai Petersen,et al.  Guidelines for conducting systematic mapping studies in software engineering: An update , 2015, Inf. Softw. Technol..

[9]  Emerson R. Murphy-Hill,et al.  Refactoring-aware code review , 2017, 2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[10]  Miryung Kim,et al.  An Empirical Study of RefactoringChallenges and Benefits at Microsoft , 2014, IEEE Transactions on Software Engineering.

[11]  Sunghun Kim,et al.  Partitioning Composite Code Changes to Facilitate Code Review , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

[12]  Mary Shaw,et al.  Writing good software engineering research papers , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[13]  Shinpei Hayashi,et al.  Hierarchical categorization of edit operations for separately committing large refactoring results , 2015, IWPSE.

[14]  Miryung Kim,et al.  Refactoring Inspection Support for Manual Refactoring Edits , 2018, IEEE Transactions on Software Engineering.

[15]  Audris Mockus,et al.  Predicting risk of software changes , 2000, Bell Labs Technical Journal.

[16]  Dongmei Zhang,et al.  How do software engineers understand code changes?: an exploratory study in industry , 2012, SIGSOFT FSE.

[17]  Shuvendu K. Lahiri,et al.  Helping Developers Help Themselves: Automatic Decomposition of Code Review Changesets , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[18]  Shane McIntosh,et al.  An empirical study of the impact of modern code review practices on software quality , 2015, Empirical Software Engineering.

[19]  Zhiyuan Chen,et al.  Clone refactoring inspection by summarizing clone refactorings and detecting inconsistent changes during software evolution , 2018, J. Softw. Evol. Process..

[20]  Danny Dig,et al.  Accurate and Efficient Refactoring Detection in Commit History , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[21]  Alberto Bacchelli,et al.  What makes a code change easier to review: an empirical investigation on code change reviewability , 2018, ESEC/SIGSOFT FSE.

[22]  Pearl Brereton,et al.  A systematic review of systematic review process research in software engineering , 2013, Inf. Softw. Technol..

[23]  Kurt Schneider,et al.  On the Need for a New Generation of Code Review Tools , 2016, PROFES.