On the Need for a New Generation of Code Review Tools

Tool support for change-based code review is gaining widespread acceptance in the industry. This indicates that the current generation of tools is well-aligned to current code review practices. Nevertheless, we believe that further improvements in code review tooling can lead to increased review efficiency and effectiveness. In this paper, we combine results from a qualitative study and results from the literature to substantiate this claim. We derive promising improvement areas and provide an overview of existing research in these areas. A common attribute of these improvements is that they trade flexibility for reviewer support. As flexibility is one of the main characteristics of the current generation of code review tools in Hedberg’s classification of review tool generations, we regard these coming tools as part of a new generation of code review tools.

[1]  Westley Weimer,et al.  Automatically documenting program changes , 2010, ASE.

[2]  Filippo Lanubile,et al.  Investigating the active guidance factor in reading techniques for defect detection , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[3]  Alberto Bacchelli,et al.  Expectations, outcomes, and challenges of modern code review , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[4]  Shinpei Hayashi,et al.  Understanding Source Code Differences by Separating Refactoring Effects , 2011, 2011 18th Asia-Pacific Software Engineering Conference.

[5]  Marc Roper,et al.  The role of comprehension in software inspection , 2000, J. Syst. Softw..

[6]  Tzvi Raz,et al.  Factors affecting design inspection effectiveness in software development , 1997, Inf. Softw. Technol..

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

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

[9]  Marc Roper,et al.  Systematic object-oriented inspection - an empirical study , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[10]  Claes Wohlin,et al.  State‐of‐the‐art: software inspections after 25 years , 2002, Softw. Test. Verification Reliab..

[11]  Daniel M. German,et al.  Understanding open source software peer review: Review processes, parameters and statistical models, and underlying behaviours and mechanisms , 2011 .

[12]  Georgios Gousios,et al.  Untangling fine-grained code changes , 2015, 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[13]  Martin P. Robillard,et al.  Non-essential changes in version histories , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

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

[15]  Christian Bird,et al.  Convergent contemporary software peer review practices , 2013, ESEC/FSE 2013.

[16]  Stefan Biffl,et al.  Investigating the influence of inspector capability factors with four inspection techniques on inspection performance , 2002, Proceedings Eighth IEEE Symposium on Software Metrics.

[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]  Stéphane Ducasse,et al.  Visually characterizing source code changes , 2015, Sci. Comput. Program..

[19]  Peter J. Middleton,et al.  Software Inspection , 1994, J. Inf. Technol..

[20]  Kurt Schneider,et al.  A Faceted Classification Scheme for Change-Based Industrial Code Review Processes , 2016, 2016 IEEE International Conference on Software Quality, Reliability and Security (QRS).

[21]  Michael W. Godfrey,et al.  Investigating technical and non-technical factors influencing modern code review , 2015, Empirical Software Engineering.

[22]  Vipin Balachandran,et al.  Reducing human effort and improving quality in peer code reviews using automatic static analysis and reviewer recommendation , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[23]  James Miller,et al.  An empirical evaluation of defect detection techniques , 1997, Inf. Softw. Technol..

[24]  Daniel M. Germán,et al.  Visualizing Software Architecture Evolution Using Change-Sets , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[25]  Xi Ge Improving Tool Support for Software Developers through Refactoring Detection. , 2014 .

[26]  Khaled El Emam,et al.  Quantitative modeling of software reviews in an industrial setting , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[27]  Audris Mockus,et al.  Understanding the sources of variation in software inspections , 1998, TSEM.

[28]  Hajimu Iida,et al.  Who should review my code? A file location-based code-reviewer recommendation approach for Modern Code Review , 2015, 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[29]  Henrik Hedberg,et al.  Introducing the Next Generation of Software Inspection Tools , 2004, PROFES.

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