SWE-Gate:通过功能测试不足以证明软件工程智能体的能力
SWE-Gate: Passing Functional Tests Is Not Enough for Software Engineering Agents
精选理由
提醒读者功能测试之外还要看评审约束
AI 摘要
代码仓库级软件工程基准显著推动了对编码智能体的评估,但现有基准主要衡量生成的补丁是否通过功能测试,而忽略了源自代码审查的验收约束(审查约束),这些约束在真实软件开发中往往会影响一个补丁是否可接受。我们引入 SWE-Gate,这是一个面向软件工程智能体的代码仓库级基准,明确在功能正确性之外评估对审查约束的遵循情况。SWE-Gate 从真实拉取请求审查评论中提取审查约束,并围绕这些约束合成代码仓库级修复实例。每个实例都提供独立的功能测试和约束测试,以及不合规补丁和黄金补丁,从而能够明确区分问题解决能力与审查约束遵循能力。我们构建的 SWE-Gate 包含 303 个代码仓库级修复实例,覆盖 75 个开源 Python 代码仓库,涉及多种软件领域。在一个通用编码智能体框架下,对涵盖不同能力水平的四种 LLM 后端进行实验,结果揭示了功能成功与在完整修复规范下成功之间存在显著差距:在通过功能测试的 644 次修复中,有 221 次未能满足所提供的审查约束。这些发现表明,仅基于功能的评估会高估智能体满足代码仓库级修复任务完整要求的能力。包含代码、数据和实验结果的复现包可在 https://github.com/DeepSoftwareAnalytics/SWE-Gate 获取。