[Paper] RepoMod-Bench:用于代码仓库现代化的实现无关测试基准

发布: (2026年2月26日 GMT+8 09:25)
6 分钟阅读
原文: arXiv

Source: arXiv - 2602.22518v1

概述

本文介绍了 RepoMod‑Bench,这是一项新基准,用于衡量 AI 驱动的编码代理在现代化整个代码仓库方面的表现。通过使用对实现无关(黑盒)的隐藏测试,作者提供了一种确定性的、语言无关的方式来评估原始代码与现代化后代码之间的功能等价性——这是以往基准难以实现的目标。

关键贡献

  • 大规模、多语言基准:21 个真实世界的代码库(14 K–211 K 行代码),涵盖 8 种编程语言,总计 160 万行代码和 11 616 个测试。
  • 实现无关的评估:测试以黑盒二进制形式执行,防止代理通过读取或针对测试套件进行“作弊”。
  • 标准化接口:每个代码库都使用统一的 API 包装,实现跨语言的功能检查。
  • 实证基线:对四种最先进的 AI 编码代理进行评估,显示随着代码库规模增长,通过率出现显著下降(91 % → 15 %)。
  • 开源发布:基准数据、测试框架和评估脚本已在 GitHub 上公开。

方法论

  1. 仓库选择 – 选择真实世界的开源项目,以实现多样性(不同领域、语言和规模),并且拥有明确的“源”实现,可作为真实答案。
  2. 接口标准化 – 为每个仓库添加一个薄层封装,暴露一组函数(例如 parse()serialize()),这些函数与语言无关。这样相同的测试框架即可调用任何语言的实现。
  3. 与实现无关的测试套件 – 测试被编译成特定语言的二进制文件,运行标准化接口并将输出与原始仓库的行为进行比较。测试二进制不向 AI 代理公开
  4. 代理配置 – 四种主流代码生成代理(例如基于 Codex、基于 GPT‑4,以及两个开源模型)在未看到测试的情况下,被提示对每个仓库进行翻译或重构。
  5. 评分 – 对每个仓库计算通过率:隐藏测试中现代化代码通过的比例。结果按规模区间(<10 K 行代码,10–50 K 行代码,>50 K 行代码)进行汇总。

Results & Findings

大小区间平均通过率(基线代理)
< 10 K LOC91.3 %
10–50 K LOC38.7 %
> 50 K LOC15.3 %
  • 规模崩塌:随着代码库规模的增长,性能急剧下降,表明当前的代理在大规模架构推理方面仍有困难。
  • 语言鲁棒性:在所有八种语言中的通过率始终偏低,说明瓶颈并非语言特定,而是管理复杂代码库的能力不足。
  • 隐藏测试的有效性:由于代理从未看到测试,用例分数低不能归咎于对可见测试套件的过拟合;这反映了真实的功能缺口。

实际意义

  • 工具开发者:如果您正在构建 AI 辅助的重构或迁移工具,RepoMod‑Bench 提供了一个真实的衡量标准,模拟了生产环境的约束(不可见测试、多语言支持)。
  • CI/CD 集成:黑盒测试框架可以直接嵌入现有流水线,自动验证 AI 生成的补丁,确保在投入生产前通过。
  • 企业迁移:希望现代化传统单体系统的公司应降低预期——当前模型仅在小型、独立的组件上表现良好。
  • 模型训练:该基准强调需要包含架构模式(模块边界、API 合约)的训练数据,而不仅仅是代码片段级别的补全。

限制与未来工作

  • 现代化范围:该基准侧重于功能等价性;非功能性方面(性能、内存使用、安全性)未进行测量。
  • 静态测试覆盖率:尽管测试套件是隐藏的,但仍由人工编写,可能遗漏真实部署中出现的边缘情况。
  • 代理多样性:仅评估了四种配置;更广泛的覆盖(例如,微调的领域特定模型)可能会产生不同的扩展行为。
  • 未来方向:将基准扩展至包括性能回归、添加更大规模的代码库(>500 K 行代码),并探索半自动化测试生成,以拓宽评估标准。

作者

  • Xuefeng Li
  • Nir Ben-Israel
  • Yotam Raz
  • Belal Ahmed
  • Doron Serebro
  • Antoine Raux

论文信息

  • arXiv ID: 2602.22518v1
  • 分类: cs.SE
  • 出版日期: 2026年2月26日
  • PDF: Download PDF
0 浏览
Back to Blog

相关文章

阅读更多 »