RAID: Tool Support for Refactoring-Aware Code Reviews

被引:5
|
作者
Brito, Rodrigo [1 ]
Valente, Marco Tulio [1 ]
机构
[1] Fed Univ Minas Gerais UFMG, ASERG Grp, Dept Comp Sci, Belo Horizonte, MG, Brazil
关键词
Refactoring; Refactoring-Aware Code Review; Code Review; Textual Diffs;
D O I
10.1109/ICPC52881.2021.00033
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:265 / 275
页数:11
相关论文
共 50 条
  • [1] Refactoring-Aware Code Review
    Ge, Xi
    Sarkar, Saurabh
    Witschey, Jim
    Murphy-Hill, Emerson
    2017 IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING (VL/HCC), 2017, : 71 - 79
  • [2] Refactoring-Aware Code Review: A Systematic Mapping Study
    Coelho, Flavia
    Massoni, Tiago
    Alves, Everton L. G.
    2019 IEEE/ACM 3RD INTERNATIONAL WORKSHOP ON REFACTORING (IWOR 2019), 2019, : 63 - 66
  • [3] Towards Refactoring-Aware Regression Test Selection
    Wang, Kaiyuan
    Zhu, Chenguang
    Celik, Ahmet
    Kim, Jongwook
    Batory, Don
    Gligoric, Milos
    PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2018, : 233 - 244
  • [4] IntelliMerge: A Refactoring-Aware Software Merging Technique
    Shen, Bo
    Zhang, Wei
    Zhao, Haiyan
    Liang, Guangtai
    Jin, Zhi
    Wang, Qianxiang
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (OOPSLA):
  • [5] Refactoring-Aware Block Tracking in Commit History
    Hasan, Mohammed Tayeeb
    Tsantalis, Nikolaos
    Alikhanifard, Pouria
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2024, 50 (12) : 3330 - 3350
  • [6] ReBA: Refactoring-aware Binary Adaptation of Evolving Libraries
    Dig, Danny
    Negara, Stas
    Johnson, Ralph
    Mohindra, Vibhu
    ICSE'08 PROCEEDINGS OF THE THIRTIETH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2008, : 441 - 450
  • [7] REdiffs: Refactoring-Aware Difference Viewer for Java']Java
    Hayashi, Shinpei
    Thangthumachit, Sirinut
    Saeki, Motoshi
    2013 20TH WORKING CONFERENCE ON REVERSE ENGINEERING (WCRE), 2013, : 487 - 488
  • [8] RAT: A Refactoring-Aware Traceability Model for Bug Localization
    Niu, Feifei
    Assuncao, Wesley K. G.
    Huang, LiGuo
    Mayr-Dorn, Christoph
    Ge, Jidong
    Luo, Bin
    Egyed, Alexander
    2023 IEEE/ACM 45TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ICSE, 2023, : 196 - 207
  • [9] RefDistiller: A Refactoring Aware Code Review Tool for Inspecting Manual Refactoring Edits
    Alves, Everton L. G.
    Song, Myoungkyu
    Kim, Miryung
    22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, : 751 - 754
  • [10] Operation-Based Refactoring-Aware Merging: An Empirical Evaluation
    Ellis, Max
    Nadi, Sarah
    Dig, Danny
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (04) : 2698 - 2721