论文

TestEvo-Bench:测试和代码协同进化的可执行实时基准

TestEvo-Bench: An Executable and Live Benchmark for Test and Code Co-Evolution

智能体系统Agent任务评测

摘要

软件测试和代码一起发展:代码更改后应该进行记录新软件行为的新的或更新的测试。然而,现有的测试生成和更新基准通常将测试与代码更改隔离开来,并且依赖于静态元数据,而这些静态元数据无法验证测试是否可执行或在语义上与代码更改相关联。这使得评估测试自动化代理是否理解代码更改应如何传播到测试套件中变得困难。我们引入 TestEvo-Bench,这是从软件存储库中挖掘的测试和代码协同进化任务的基准,有两个轨道:在测试生成中,代理应编写新的测试来捕获新的软件行为;在测试更新中,代理应使失败的现有测试适应已更改的软件行为。每个任务都锚定到真实的提交历史记录,并与环境配置打包在一起,以支持基于执行的指标,例如通过率、覆盖率和突变分数。 TestEvo-Bench 也是一个实时基准测试:每个任务都会记录测试和代码更改的时间戳,并且我们的自动化管道会定期挖掘新任务,因此评估可以仅限于模型训练截止后的任务,以降低数据泄漏风险。当前快照包含 746 个测试生成和 509 个测试更新任务,这些任务是从 152 个开源 Java 项目的 59,950 个候选共同进化记录中整理出来的。我们尝试了四种最先进的代理,将强大的工具(Claude Code、Gemini CLI 和 SWE-Agent)与强大的基础模型(Claude Opus 4.7 和 Gemini 3.1 Pro)相结合。结果显示,他们的测试生成成功率高达 77.5%,测试更新成功率高达 74.6%。然而,最近的基准任务的成功率明显较低,并且在每项任务成本有限的情况下显着下降。