Skip to main content
QUICK REVIEW

[论文解读] On The Effect Of Code Review On Code Smells

Luca Pascarella, Davide Spadini|arXiv (Cornell University)|Dec 20, 2019
Software Engineering Research参考文献 81被引用 4
一句话总结

本研究基于七个Java开源项目的21,879次代码审查,调查了代码审查对代码异味严重性的影响。研究发现,积极且参与度高的代码审查显著降低了代码异味的严重性,但这种降低通常是无关代码更改的副作用,而非有意的设计改进。

ABSTRACT

Code smells are symptoms of poor design quality. Since code review is a process that also aims at improving code quality, we investigate whether and how code review influences the severity of code smells. In this study, we analyze more than 21,000 code reviews belonging to seven Java open-source projects; we find that active and participated code reviews have a significant influence on the likelihood of reducing the severity of code smells. This result seems to confirm the expectations around code review's influence on code quality. However, by manually investigating 365 cases in which the severity of a code smell in a file was reduced with a review, we found that-in 95% of the cases-the reduction was a side effect of changes that reviewers requested on matters unrelated to code smells. Data and materials [https://doi.org/10.5281/zenodo.3588501].

研究动机与目标

  • 调查并分析代码审查是否以及如何影响软件系统中代码异味的严重性。
  • 确定代码审查活动(如参与度、评论数量)是否与代码异味严重性降低相关。
  • 理解在代码审查过程中,哪些特定类型的代码异味更可能被降低严重性。
  • 分析代码异味严重性降低的根本原因,以判断其是源于有意的设计讨论还是无关更改的附带结果。
  • 通过识别开发者意识和代码审查工具在代码异味支持方面的差距,为未来工具开发和实践改进提供建议。

提出的方法

  • 从七个开源Java项目中收集并分析了21,879次代码审查,利用版本控制和问题跟踪数据。
  • 使用六种公认的代码异味,从文件粒度测量每次代码审查前后代码异味的严重性。
  • 应用统计分析方法,评估代码审查活动(如审查人数、评论数量)与代码异味严重性变化之间的关系。
  • 对365个代码异味严重性降低的案例进行人工检查,以分类其根本原因。
  • 采用细粒度的文件级对比方法,隔离代码审查对代码异味严重性的影响,避免汇总层面的混杂因素。
  • 开发了一套严重性降低原因的分类体系,以区分有意的设计改进与偶然更改。

实验结果

研究问题

  • RQ1在多大程度上,积极且参与度高的代码审查能降低被审查文件中代码异味的严重性?
  • RQ2在代码审查过程中,哪些特定类型的代码异味最可能降低其严重性?
  • RQ3代码异味严重性降低主要是由于对设计质量的有意讨论,还是无关更改带来的附带结果?
  • RQ4代码审查的特征(如审查人数、评论数量)与代码异味严重性变化之间存在何种相关性?
  • RQ5在代码审查过程中,观察到的代码异味严重性降低的主要原因是什么?

主要发现

  • 积极且参与度高的代码审查显著提高了被审查文件中代码异味严重性降低的可能性。
  • 在代码异味严重性降低的95%案例中,降低是由于与代码异味无关的更改请求所导致的副作用。
  • 本研究未发现代码异味严重性(如先前研究中报告的严重性)与代码审查期间其被降低的可能性之间存在强相关性。
  • 代码异味严重性降低并非由对设计质量的直接讨论驱动,表明开发者在审查过程中对这类问题缺乏意识或优先考虑。
  • 结果表明,当前的代码审查工具未能充分突出代码异味,导致错失了有意重构的机会。
  • 仅有极小部分的代码异味改善源于明确的设计讨论,凸显了在代码审查工作流中改进工具支持和可视化功能的迫切需求。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。