【Agent & SWE】如何针对代码审查智能体进行基准测试

【Agent & SWE】如何针对代码审查智能体进行基准测试svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



 
  
    
     
      
     
  
    
    

  1. 研究问题:这篇文章要解决的问题是如何评估自动化代码审查工具的有效性。具体来说,现有的评估方法主要基于文本相似度或嵌入相似度,但这些方法无法准确衡量自动化生成的代码审查评论是否与人类审查员提出的问题一致
  2. 研究难点:现有评估方法的局限性、人类审查评论的噪声和不完整性、以及自动化工具输出的随机性和不可重复性。
  3. 相关工作:基于文本相似度的评估方法(如BLEU、ROUGE、chrF和嵌入相似度)、基于本地化的评估方法、以及使用大型语言模型作为评委的方法。这些方法都存在一定的局限性,无法全面准确地评估自动化代码审查工具的性能。

在这里插入图片描述

这篇论文提出了c-CRAB(code-CRAB)基准测试,用于解决自动化代码审查工具的评估问题。具体来说,

  1. 基准数据集构建:c-CRAB从人类审查评论中系统构建基准数据集。给定一个人类审查的评论实例,生成相应的测试来评估代码审查代理生成的评论。
  2. 评估框架:c-CRAB采用基于测试的评估方法。人类审查反馈被系统地转换为可执行的测试,以捕捉审查过程中识别的问题。评估框架包括以下步骤:
  • 提供PR实例并收集审查评论。
  • 使用单独的编码代理根据生成的审查评论修改PR中的代码。
  • 执行修改后的代码并对生成的测试进行验证。如果测试通过,则表示审查成功识别了可操作的问题,从而导致了正确的代码改进。
  1. 测试生成:将人类审查评论转换为可执行测试的关键在于将审查过程中识别的问题编码为测试。每个测试在原始补丁上失败,但在问题解决后通过。测试的生成过程如下:
  • 每个保留的自然语言审查评论,提取相关的上下文信息(如文件内容和代码区域)。
  • 使用LLM生成候选测试用例,并通过执行测试来验证其有效性。
  • 如果生成的测试不满足要求,则将执行跟踪和错误消息反馈给编码代理,代理根据反馈修改测试,直到生成有效的测试或达到尝试次数上限。
  1. 数据收集:c-CRAB基于SWE-CARE基准,包含184个PR实例和234个可验证的测试用例,涉及56个代码库。
  2. 实验设置:评估工具包括Claude Code、Codex、Devin Review和PR-Agent。所有实验在一个Ubuntu 20.04服务器上进行,使用相同的编码代理Claude Code进行验证和评估。
  3. 评估流程:评估分为两个阶段:审查生成和审查引导修订。在审查生成阶段,每个自动化审查工具分析每个PR实例并生成审查评论。在审查引导修订阶段,生成的评论用于指导编码代理修改PR中的代码,修改后的代码随后对生成的测试进行验证。

在这里插入图片描述

  1. 评估得分:自动化审查工具的通过率范围为20.1%到32.1%,而人类审查员的通过率为100%。即使结合多个工具,AI生成的评论与人类评论之间仍存在显著差距。
  2. 评论有用性:尽管通过率较低,但大多数评论仍然是有用的。手动检查的92条评论中,77条被认为是有用的,占比84%。
  3. 评论类别分布:自动化工具生成的评论类别分布与人类评论不同。自动化工具更频繁地关注鲁棒性和测试,而较少关注文档、设计和可维护性
  4. 按类别捕获问题:自动化工具在不同类别中捕获人类识别问题的效果不同。鲁棒性和功能正确性的高通过率表明这些类别更易于捕获。而文档和设计类别的低通过率表明这些类别需要更广泛的代码库上下文和项目特定约定。

在这里插入图片描述

这篇论文提出了c-CRAB基准测试,用于评估自动化代码审查工具在现实世界PR设置中的有效性。结果表明,当前最先进的审查工具仅能识别基准中的一小部分问题,表明自动化代码审查工具有很大的改进空间。进一步分析显示,自动化工具与人类审查员在评论类别和捕获的问题类型上存在差异,这表明两者可以相互补充。未来的研究方向包括将自动化工具整合到以人为中心的审查工作流程中,并提高代码审查工具在捕获代码库相关上下文方面的能力。

  1. 自动审查工具与人类审查工具的互补性:尽管自动审查工具在某些方面表现出色,但它们仍然无法完全替代人类审查。论文建议未来的研究可以将自动工具整合到以人为中心的审查工作流程中。
  2. 仓库特定上下文的缺失:自动审查工具很少涉及与维护性、设计和文档相关的问题,这些通常依赖于特定仓库的知识。论文建议实践者可以通过记录仓库特定的规则来提高自动审查工具的效果,而工具开发者则需要更丰富的项目上下文信息。
  3. 测试作为构建代码审查代理的有用工具:论文展示了基于可执行测试的评估方法的优势,并建议未来的研究方向可以包括利用测试来训练审查系统。
📌 [ 笔者 ] 文艺倾年 📃 [ 更新 ] 2026.04.10 ❌ [ 勘误 ] /* 暂无 */ 📜 [ 声明 ] 由于作者水平有限,本文有错误和不准确之处在所难免,

 本人也很想知道这些错误,恳望读者批评指正! 

在这里插入图片描述

小讯
上一篇 2026-04-13 13:06
下一篇 2026-04-13 13:04

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/259717.html