[Paper] 通过手动和自动代码审查推荐的质量改进研究

发布: (2026年2月12日 GMT+8 21:23)
7 分钟阅读
原文: arXiv

Source: arXiv - 2602.11925v1

请提供您希望翻译的具体文本内容,我将为您翻译成简体中文。

概览

本文研究了最先进的大型语言模型(ChatGPT‑4)在模拟人工代码审查反馈方面的表现。通过将 739 条人工撰写的审查员评论(针对 240 个拉取请求,PR)与 ChatGPT 自动生成的建议进行比较,作者评估了 AI 是否能够取代——或至少补充——人工审查员在发现质量相关问题方面的作用。

关键贡献

  • 经验比较 人工编写的代码审查评论与 AI 生成的建议,在一个规模可观的真实数据集上(240 个 PR,739 条人工评论)。
  • 质量改进类型的分类体系(例如命名、可读性、API 误用),来源于对人工评论的手动检查。
  • 定量分析 表明 ChatGPT 产生的评论数量约为人工的 2.4 倍,但仅捕获了人工审查者提出问题的约 10%。
  • 定性洞察 表明额外的 AI 生成评论中约有 40% 真正有用,凸显了互补关系。
  • 实践者指南,说明如何将基于 LLM 的审查工具整合到现有开发工作流中,而不期望它们取代人工判断。

方法论

  1. 数据收集 – 作者从流行的开源仓库中挖掘了 240 个合并的 PR,并提取了 739 条由人工审阅者撰写、明确建议代码更改的评论。
  2. 手动标注 – 对每条评论进行检查,并将其归类到预定义的质量改进类别(例如命名、重构、文档)。
  3. LLM 审阅生成 – 对每个 PR,将相同的代码差异输入 ChatGPT‑4,并使用提示让其执行代码审阅并列出改进建议。
  4. 比较框架 – 将 AI 生成的建议与人工标注的问题通过词汇相似度和人工验证进行匹配,以确定重叠、新颖性和相关性。
  5. 统计分析 – 计算召回率(AI 找到的问题 vs. 人工)、精确率(有用的 AI 评论 / AI 总评论)以及评论密度等指标。

结果与发现

指标人工审查ChatGPT‑4 审查
Avg. comments per PR3.17.5
Overlap (issues found by both)10 % of human‑identified issues
Unique, useful AI comments~40 % of AI‑only comments
Redundant / low‑value AI comments~60 % (style nitpicks, trivial suggestions)
  • 更高的评论量,较低的重叠度: ChatGPT 更健谈,标记了许多表面或已经可接受的模式,但它错过了大多数人工能够捕捉到的细微问题。
  • 互补性: 大约三分之二的仅 AI 建议要么是人工反馈的重复,要么是无关的,而剩下的三分之一则提供了人工未提及的全新、可操作的洞见。
  • 没有节省时间的捷径: 由于人工仍需进行主要审查并随后验证 AI 生成的评论,整体审查时间并未缩短。

Practical Implications

  • 增强的审查流水线: 团队可以在人工审查之后运行基于 LLM 的审查员,作为“第二双眼睛”,捕捉可能被忽视的低挂质量问题。
  • 聚焦分流: 由于只有约 40 % 的 AI 评论是有用的,工具应加入置信度评分或后处理过滤,以呈现最有价值的建议。
  • 培训与入职: 新贡献者可以将 AI 生成的反馈作为学习辅助,但需指导他们区分高价值建议与噪声。
  • 政策制定: 组织应将 AI 代码审查输出视为建议性而非权威性,并对关键更改保留强制性人工批准。
  • 工具集成: GitHub、GitLab 或 Azure DevOps 的插件可以自动在 PR 上发布 ChatGPT 评论,但 UI/UX 应允许审查者快速忽略低价值的评论,以避免审查疲劳。

限制与未来工作

  • 模型特定性: 本研究仅评估了 ChatGPT‑4;其他大型语言模型或经过微调的模型可能表现不同。
  • 领域偏差: 拉取请求(PR)来自具有特定语言和编码风格的开源项目;结果可能无法推广到专有或高度专业化的代码库。
  • 提示工程: 只使用了单一提示;探索更丰富的提示或多轮交互可能提升 AI 的召回率。
  • 人工审阅者的差异性: 分析将所有人工评论视为等同,但审阅者的专业水平和细致程度各不相同,这可能影响基准线。

未来的研究方向包括在领域特定语料上测试微调的大型语言模型,开发用于 AI 评论的自动相关性过滤机制,以及开展纵向研究,以衡量 AI 增强审阅随时间对缺陷密度和开发者生产力的影响。

作者

  • Giuseppe Crupi
  • Rosalia Tufano
  • Gabriele Bavota

论文信息

  • arXiv ID: 2602.11925v1
  • 分类: cs.SE
  • 发表时间: 2026年2月12日
  • PDF: 下载 PDF
0 浏览
Back to Blog

相关文章

阅读更多 »