解释“解释”:代码评审中解释性内容的实证研究
软件工程
2024-10-11 v2
摘要
代码评审是软件质量保障的核心环节。理想情况下,评审者应当解释其反馈,以使代码变更的作者能够理解反馈并据此采取行动。不同的开发者在不同情境下可能需要不同的解释。因此,辅助这一过程首先需要理解评审者通常提供的解释类型。本文的目标是研究代码评审中使用的解释类型,并探索大语言模型(LLMs),特别是 ChatGPT,在生成这些特定类型解释方面的潜力。我们从 Gerrit 中提取了 793 条代码评审评论,并根据其是否包含建议、解释或两者兼而有之进行了人工标注。我们的分析显示,42% 的评论仅包含建议而无解释。我们将解释分为七种不同类型,包括规则或原则、相似示例和未来影响。在衡量其出现频率时,我们观察到一些解释在新手与经验丰富的评审者中的使用方式存在差异。我们的人工评估表明,当指定解释类型时,ChatGPT 能在 90 个案例中的 88 个正确生成解释。这项基础性工作凸显了未来代码评审自动化的潜力,可协助开发者按需分享和获取不同类型的解释,从而减少来回沟通。
引用
@article{arxiv.2311.09020,
title = {Explaining Explanation: An Empirical Study on Explanation in Code Reviews},
author = {Ratnadira Widyasari and Ting Zhang and Abir Bouraffa and Walid Maalej and David Lo},
journal= {arXiv preprint arXiv:2311.09020},
year = {2024}
}