RAID: Tool support for refactoring-aware code reviews
R Brito, MT Valente - 2021 IEEE/ACM 29th International …, 2021 - ieeexplore.ieee.org
2021 IEEE/ACM 29th International Conference on Program …, 2021•ieeexplore.ieee.org
Code review is a key development practice that contributes to improve software quality and
to foster knowledge sharing among developers. However, code review usually takes time
and demands detailed and time-consuming analysis of textual diffs. Particularly, detecting
refactorings during code reviews is not a trivial task, since they are not explicitly represented
in diffs. For example, a Move Function refactoring is represented by deleted (-) and added
lines (+) of code which can be located in different and distant source code files. To tackle this …
to foster knowledge sharing among developers. However, code review usually takes time
and demands detailed and time-consuming analysis of textual diffs. Particularly, detecting
refactorings during code reviews is not a trivial task, since they are not explicitly represented
in diffs. For example, a Move Function refactoring is represented by deleted (-) and added
lines (+) of code which can be located in different and distant source code files. To tackle this …
Code review is a key development practice that contributes to improve software quality and to foster knowledge sharing among developers. However, code review usually takes time and demands detailed and time-consuming analysis of textual diffs. Particularly, detecting refactorings during code reviews is not a trivial task, since they are not explicitly represented in diffs. For example, a Move Function refactoring is represented by deleted (-) and added lines (+) of code which can be located in different and distant source code files. To tackle this problem, we introduce RAID, a refactoring-aware and intelligent diff tool. Besides proposing an architecture for RAID, we implemented a Chrome browser plug-in that supports our solution. Then, we conducted a field experiment with eight professional developers who used RAID for three months. We concluded that RAID can reduce the cognitive effort required for detecting and reviewing refactorings in textual diff. Besides documenting refactorings in diffs, RAID reduces the number of lines required for reviewing such operations. For example, the median number of lines to be reviewed decreases from 14.5 to 2 lines in the case of move refactorings and from 113 to 55 lines in the case of extractions.
ieeexplore.ieee.org