RAID: Tool Support for Refactoring-Aware Code Reviews

  • Rodrigo Brito UFMG
  • Marco Tulio Valente UFMG

Resumo


Revisão de código é uma importante prática no desenvolvimento de software que contribui para a melhoria de qualidade do código e transferência de conhecimento. No entanto, revisão de código leva tempo e exige uma análise detalhada e demorada de diffs textuais. Particularmente, detectar refatorações durante as revisões não é uma tarefa trivial, uma vez que as refatorações não são representadas em diffs. Por exemplo, ao mover uma função, o diff é representado por linhas adicionadas (+) e linhas removidas (-) em partes que podem estar localizados em diferentes e distantes arquivos do código fonte. Para solucionar este desafio, nós apresentamos RAID, uma ferramenta de diff inteligente que identifica atividades de refatoração e instrumenta os diffs textuais. Além de propor uma arquitetura para o RAID, implementamos um plug-in para o navegador Chrome que suporta nossa solução. Finalmente, avaliamos RAID em um experimento de campo por três meses, quando oito desenvolvedores profissionais usaram nossa ferramenta em quatro projetos Go. Concluímos que RAID reduz o esforço cognitivo necessário para detectar e revisar atividades de refatoração em diffs textuais. Particularmente, RAID também reduz o número de linhas necessárias para revisar tais operações. Por exemplo, o número médio de linhas a serem revisadas diminuiu de 14,5 para 2 linhas no caso de refatorações envolvendo movimentação e de 113 para 55 linhas no caso de extrações.

Referências

Silva, D., da Silva, J. P., Santos, G., Terra, R., and Valente, M. T. (2021). RefDiff 2.0: A multi-language refactoring detection tool. IEEE Transactions on Software Engineering, 1(1):1-17.

Publicado
03/10/2022
Como Citar

Selecione um Formato
BRITO, Rodrigo; VALENTE, Marco Tulio. RAID: Tool Support for Refactoring-Aware Code Reviews. In: CONCURSO DE TESES E DISSERTAÇÕES EM ENGENHARIA DE SOFTWARE (CTD-ES) - CONGRESSO BRASILEIRO DE SOFTWARE: TEORIA E PRÁTICA (CBSOFT), 13. , 2022, Uberlândia/MG. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2022 . p. 44-45. DOI: https://doi.org/10.5753/cbsoft_estendido.2022.224945.