合并请求接受所需变更量的实证研究
软件工程
2025-08-01 v1
摘要
代码审查 (CR) 是软件开发中必不可少的环节,有助于确保新代码得到正确集成。然而,CR过程往往涉及大量工作,包括代码调整、对审阅者的响应以及持续的实施。在过去的研究中,人们曾探讨过CR延迟和迭代次数,但鲜有研究从提交后所需的代码修改量(尤其是 GitLab 合并请求 (MR) 的语境下)来衡量 CR 工作量。本文我们定义并衡量 CR 工作量为提交后所需的代码修改量,基于来自四个 GitLab 项目的 23,600 多项 MR 数据集进行分析。我们发现,最多有 71% 的 MR 需要在提交后进行调整,其中 28% 涉及超过 200 行代码的修改。令人惊讶的是,这种工作量与审阅时间或参与者数量并不相关。为了更好地理解和预测 CR 工作量,我们使用文本特征、代码复杂度、开发人员经验、审阅历史和分支等多个维度的指标训练了一个可解释的机器学习模型。该模型取得了优异的性能(AUC 为 0.84-0.88),揭示了复杂度、经验和文本特征是关键预测因子。历史项目特征也会影响当前审阅工作量。我们的发现凸显了利用机器学习解释和预测代码集成所需工作量的可行性。
引用
@article{arxiv.2507.23640,
title = {An Empirical Study on the Amount of Changes Required for Merge Request Acceptance},
author = {Samah Kansab and Mohammed Sayagh and Francis Bordeleau and Ali Tizghadam},
journal= {arXiv preprint arXiv:2507.23640},
year = {2025}
}