An empirical study on code review activity prediction in practice

FSE 2024
2024年04月16日
  • 简介
    代码审查是软件质量保证中必不可少的一步,审查人员的重要任务是理解和评估代码更改,以验证其质量并防止引入代码库中的错误。这是一个繁琐的过程,需要的工作量高度依赖于提交的代码以及作者和审查人员的经验,导致审查反馈的中位等待时间为15-64小时。通过一项与29名专家进行的初步用户研究,我们发现在审查环境中重新排列补丁所更改的文件有潜力提高审查质量,因为会写更多的评论(+23%),参与者的文件级热点区域精度和召回率分别增加到53%(+13%)和28%(+8%),与字母数字排序相比。因此,本文旨在通过预测提交的补丁中哪些文件需要(1)评论,(2)修订或(3)是热点(评论或修订),来帮助代码审查人员。为了预测这些任务,我们评估了两种不同类型的文本嵌入(即词袋和大型语言模型编码)和审查过程特征(即基于代码大小和基于历史的特征)。我们对三个开源和两个工业数据集进行的实证研究表明,将代码嵌入和审查过程特征相结合可以获得比现有技术更好的结果。对于所有任务,F1得分(40-62%的中位数)显著优于现有技术(从+1到+9%)。
  • 图表
  • 解决问题
    本论文旨在帮助代码审查者预测提交的补丁中哪些文件需要被评论、修订或是热点,并提高审查质量。
  • 关键思路
    论文通过结合代码嵌入和审查过程特征,提出了一种新的方法来预测代码审查中需要进行的任务,并且在三个开源和两个工业数据集上进行了实证研究,证明了该方法的有效性。
  • 其它亮点
    实验结果表明,与现有方法相比,本方法在所有任务的F1分数上都有显著提高(中位数为40-62%),同时在审查环境中重新排列文件的潜力可以提高审查质量。此外,论文还使用了两种不同类型的文本嵌入(词袋模型和大型语言模型编码)和审查过程特征(基于代码大小和历史记录),并且在实验中进行了比较。
  • 相关研究
    在相关研究方面,本文提到了一些代码审查相关的研究,例如:S. McIntosh等人的“在代码审查中发现缺陷的最佳实践”(Best Practices for Reviewing Code)和J. Bacchelli等人的“代码审查的挑战和机会”(Challenges and Opportunities in Code Review)。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论