arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2203.14404cs.SE
收藏

重构变更的代码评审实践--基于OpenStack的实证研究

Code Review Practices for Refactoring Changes: An Empirical Study on OpenStack

Eman Abdullah AlOmar, Moataz Chouchen, Mohamed Wiem Mkaouer, Ali Ouni

摘要:

现代代码审查是工业和开源项目中广泛使用的技术,用于提高软件质量,共享知识,并确保遵守编码标准和指南。在代码评审期间,开发人员可能会在合并代码库中的代码更改之前讨论重构活动。到目前为止,代码审查已被广泛研究,以探索其一般挑战,最佳实践和结果,以及社会技术方面。然而,很少有人知道重构是如何被审查的,以及开发人员在审查重构代码时关心什么。因此,在这项工作中,我们提出了一个定量和定性的研究,以了解什么是主要的标准,开发人员依靠制定一个决定接受或拒绝提交的重构代码,是什么使这个过程具有挑战性。通过对分布在OpenStack开源项目中的11,010个重构和非重构审查的案例研究,我们发现,就代码审查工作而言,与重构相关的代码审查需要更长的时间才能得到解决。此外,在对重构代码审查讨论的重要样本进行主题分析后,我们建立了一个由28个重构审查标准组成的综合分类法。我们设想我们的研究结果重申了开发准确和有效的工具和技术的必要性,这些工具和技术可以帮助开发人员在重构的情况下进行审查。

英文摘要:

Modern code review is a widely used technique employed in both industrial and open-source projects to improve software quality, share knowledge, and ensure adherence to coding standards and guidelines. During code review, developers may discuss refactoring activities before merging code changes in the code base. To date, code review has been extensively studied to explore its general challenges, best practices and outcomes, and socio-technical aspects. However, little is known about how refactoring is being reviewed and what developers care about when they review refactored code. Hence, in this work, we present a quantitative and qualitative study to understand what are the main criteria developers rely on to develop a decision about accepting or rejecting a submitted refactored code, and what makes this process challenging. Through a case study of 11,010 refactoring and non-refactoring reviews spread across OpenStack open-source projects, we find that refactoring-related code reviews take significantly longer to be resolved in terms of code review efforts. Moreover, upon performing a thematic analysis on a significant sample of the refactoring code review discussions, we built a comprehensive taxonomy consisting of 28 refactoring review criteria. We envision our findings reaffirming the necessity of developing accurate and efficient tools and techniques that can assist developers in the review process in the presence of refactorings.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑