Refactoring-Aware Code Review

被引:0
作者
Ge, Xi [1 ]
Sarkar, Saurabh [2 ]
Witschey, Jim [3 ]
Murphy-Hill, Emerson [3 ]
机构
[1] Apple Inc, Cupertino, CA 95014 USA
[2] Microsoft Corp, Redmond, WA 98052 USA
[3] North Carolina State Univ, Raleigh, NC 27695 USA
来源
2017 IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING (VL/HCC) | 2017年
基金
美国国家科学基金会;
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Code review, where developers manually inspect one another's code changes, improves software quality and transfers knowledge in a team. Unfortunately, tools that support code review treat behavior-preserving changes, or refactorings, and behavior-altering changes, or non-refactorings, the same way, so developers have to spend effort differentiating between the two before they can evaluate the impact of a change set. In this paper, we describe a formative study of 35 developers that motivates the need for separating refactorings from non-refactorings during code review. Then, we present a refactoring-aware code review tool, called ReviewFactor, that differentiates between refactoring and non-refactoring, and allows developers to focus on one of them at a time. Finally, a case study of two open source projects suggests that ReviewFactor detects refactorings in 39% of the commits, and identifies 4.6% of the total lines of code change as refactorings. Our results also show that the precision and recall of ReviewFactor's refactoring detection algorithm are 92.5% and 94.2%, respectively.
引用
收藏
页码:71 / 79
页数:9
相关论文
共 41 条
[1]  
[Anonymous], 2014, JUNIT TESTING FRAMEW
[2]  
[Anonymous], 1999, REFACTORING IMPROVIN
[3]  
[Anonymous], 2014, TUXBLOCKS OPEN SOURC
[4]  
[Anonymous], 2014, FBREADER FREE E BOOK
[5]  
[Anonymous], 2014, MONDRIAN CODE REV WE
[6]  
[Anonymous], 2006, P 2006 INT WORKSH MI, DOI DOI 10.1145/1137983.1137999
[7]  
[Anonymous], 2014, ECLIPSE JAVA DEV TOO
[8]  
[Anonymous], 2014, REV FACTOR GITHUB
[9]  
[Anonymous], 2014, GERRIT CODE REV TOOL
[10]  
Bacchelli A, 2013, PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), P712, DOI 10.1109/ICSE.2013.6606617