遇见数据集

TESTEVO-BENCH

收藏
arXiv2026-07-03 更新2026-07-05 收录
数据链接:
官方服务:

资源简介:

TESTEVO-BENCH是由滑铁卢大学与谷歌联合创建的一个可执行、动态更新的基准测试数据集,专注于测试与代码协同演化的研究。该数据集包含1,255个任务,涵盖测试生成与测试更新两个核心赛道,数据来源于152个开源Java项目的59,950条候选协同演化记录,并经过严格的构建、执行与语义验证流程筛选而成。其创建过程通过三阶段自动化流水线实现,包括从提交历史中挖掘候选对、基于执行的清洗以及任务构建,确保每个任务都具备可重现的执行环境与高质量的语义关联。该数据集旨在评估人工智能代理在软件工程中理解代码变化并相应生成或更新测试的能力,为解决测试自动化中的语义对齐与执行可靠性问题提供标准化的评估平台。

TESTEVO-BENCH is an executable and dynamically updatable benchmark dataset jointly created by the University of Waterloo and Google, focusing on research into the co-evolution of tests and code. The dataset comprises 1,255 tasks spanning two core tracks: test generation and test update. It is sourced from 59,950 candidate co-evolution records across 152 open-source Java projects, and has been filtered through rigorous construction, execution, and semantic validation processes. Its creation follows a three-stage automated pipeline, including mining candidate pairs from commit histories, execution-based cleaning, and task construction, ensuring that each task has a reproducible execution environment and high-quality semantic associations. This dataset aims to evaluate the ability of AI Agents to understand code changes and generate or update tests accordingly in software engineering, providing a standardized evaluation platform for addressing the issues of semantic alignment and execution reliability in test automation.

创建时间:
2026-07-03
搜集汇总
数据集介绍
TESTEVO-BENCH 数据集图片
构建方式
TESTEVO-BENCH的构建依托于一个全自动的三阶段流水线。首先,通过GitHub Search API筛选出采用Java语言与Maven构建系统的开源许可仓库,在确保编译和测试通过的基础上,遍历相邻提交以提取候选的测试与代码变更对。其次,执行跨版本的测试运行,记录旧测试在旧代码、新测试在新代码等四种组合下的执行结果,并结合构建脚本、依赖映射和重构检测等技术,剔除语义关联薄弱或执行不可复现的样本。最后,将经过验证的变更对封装为标准任务,生成任务包含新测试、变更代码方法、版本元数据和执行信号,从而为后续评估提供完整的可执行环境。
特点
该数据集的突出特点在于其可执行性与动态时效性。所有任务均锚定于真实的提交历史,并附带完整的项目构建与执行配置,支持通过测试运行、代码覆盖率分析和变异测试评分等执行导向的指标进行评估。TESTEVO-BENCH还具备“动态基准”特性,每个任务记录测试与代码变更的时间戳,并通过定期挖掘新的提交批次持续扩充任务池,从而允许研究者根据模型训练截止日期过滤任务,有效降低数据泄露风险。目前数据集包含746个测试生成任务和509个测试更新任务,均经过严格的跨版本执行验证,确保了任务标签的准确性与语义相关性。
使用方法
在使用时,数据集分为测试生成和测试更新两个赛道。对于测试生成任务,智能体需要根据代码变更编写新的测试方法,要求生成的测试在当前新版本上通过执行,而在旧版本上则会失败,以证明其捕获了引入的新行为。对于测试更新任务,智能体需要将回退至旧版本的已有测试方法进行适配,使其能在新代码上编译并正确通过。评估框架会检出新版本代码,应用智能体生成的补丁,重新编译受影响模块,并在隔离的JVM中逐方法执行每个测试,同时计算覆盖率与变异分数,最终以通过率、冗余率、编译失败率和工具失败率等多维指标衡量智能体的性能。
背景与挑战
背景概述
在软件开发与维护的漫长历程中,测试用例与生产代码的协同演化始终是保障软件质量的核心环节。每当生产代码发生变更,开发者往往需要同步编写新测试或修改既有测试,以准确记录并验证新的软件行为。然而,现有的测试生成与更新基准评估体系大多将测试与代码变更割裂开来,依赖于静态的差异性元数据,无法验证测试是否真正可执行且在语义上与代码变更深度绑定。基于这一显著的研究空白,来自滑铁卢大学与谷歌的研究团队于2026年联合推出了TESTEVO-BENCH基准。该基准通过从152个开源Java Maven项目的历史提交记录中挖掘、清洗并构建了746项测试生成任务与509项测试更新任务,锚定于真实的提交链条,并封装了完整的执行环境以支持基于运行结果的度量,迅速成为评估自动化测试代理在代码演化背景下真实能力的关键平台。
当前挑战
TESTEVO-BENCH所应对的核心领域挑战在于如何精准衡量自动化测试代理在代码变更驱动下同步更新测试套件的能力,特别是区分测试生成与测试更新这两个相辅相成却又各具难度的子问题。测试生成要求代理为新增功能编写能够捕获新行为的判别性测试,而测试更新则需代理将因代码变化而失效的既有测试修复至可通过状态,二者均远超传统的静态快照式测试合成任务。在基准构建过程中,研究者同样面临严峻挑战:首先,从海量候选提交对中精准筛选出语义关联紧密且可重复执行的测试-代码变更对极为困难,需依赖跨版本执行验证而非简单的同变更启发式规则;其次,需排除重构类变更和冗余性测试以避免噪声干扰;最后,要实现持续动态更新的现场基准机制,确保新建任务能够超越现有模型的训练数据截止点,以降低数据泄漏风险并保持评估的时效性与公平性。
常用场景
经典使用场景
在软件工程的持续演化过程中,测试用例与生产代码的协同演进是保障代码质量的核心环节。TESTEVO-BENCH 构建了一个可执行且持续更新的基准测试集,专门用于评估智能体在代码变更后执行测试生成与测试更新的能力。其经典使用场景涵盖两个核心任务:在测试生成轨道中,智能体需要为代码变更编写能够捕获新行为的新测试用例,并确保该测试在旧版本代码上失败而在新版本上通过;在测试更新轨道中,智能体则需将因代码变更而失效的既有测试用例调整至可在新版本上正确编译与运行。该基准通过交叉版本执行验证提供了严格的评估标准,使得对测试演化能力的衡量不再依赖静态差异启发式,而是建立在实际编译、执行与覆盖度分析之上。
实际应用
在工业级软件开发实践中,持续集成流水线对测试维护的效率与可靠性提出了严苛要求。TESTEVO-BENCH 所评估的测试生成与更新能力,可直接服务于开发者日常的代码审查与回归测试环节:当拉取请求修改了业务逻辑后,自动测试维护工具可借助该基准的训练范式,为新行为即时生成覆盖性测试,或将失效的现有测试修复至适配状态,从而大幅降低手动维护测试套件的时间成本。在集成到代码助手中时,该基准可帮助团队识别测试覆盖的薄弱环节,提升变异杀死率,确保软件迭代过程中测试质量不退化。此外,其有限的每任务成本分析为企业在采纳这些自动化工具时提供了预算规划与性能权衡的实操参考。
衍生相关工作
TESTEVO-BENCH 的发布催生了一系列围绕测试与代码协同演化的后续工作。在其基础上,研究者们进一步探索了更细粒度的测试失败模式分类,将冗余测试、编译失败和执行失败等不同类型信号各自作为导向性反馈以指导智能体学习。受到其活体基准设计理念的启发,后续工作将时间戳过滤机制与更高效的变异生成策略结合,提出了面向跨语言项目的测试演化基准,如将流水线扩展至 Python 与 JavaScript 生态。此外,该基准可执行的交叉版本验证流程被借鉴用于构建更具辨别力的测试预言评估方法,推动了测试生成中非平凡断言的学习。其发布的开源评估框架更成为行业比较自动化测试维护工具的标准平台,促进了该领域的可重复研究。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务