ULT (UnLeakedTestbench)
收藏arXiv2025-08-01 更新2025-08-05 收录
下载链接:
https://github.com/huangd1999/UnLeakedTestBench
下载链接
链接失效反馈官方服务:
资源简介:
ULT (UnLeakedTestbench) 是一个专门为从真实世界的 Python 函数中生成函数级别的单元测试而设计的新基准。ULT 通过多阶段审查过程构建,确保高循环复杂度并减少测试用例污染。ULT 共有 3,909 个精心选择的函数级别任务,为评估大型语言模型 (LLM) 的测试生成能力提供了更真实和更具挑战性的评估。此外,还提供了一个名为 PLT (PreLeakedTestbench) 的配对基准,其中包含泄漏的测试,旨在控制分析测试生成中的记忆与推理。
ULT (UnLeakedTestbench) is a novel benchmark specifically designed for generating function-level unit tests from real-world Python functions. It is constructed through a multi-stage review process to ensure high cyclomatic complexity and mitigate test case contamination. ULT comprises 3,909 carefully curated function-level tasks, which deliver a more realistic and challenging evaluation for assessing the test generation capabilities of large language models (LLMs). Additionally, a paired benchmark named PLT (PreLeakedTestbench) with leaked test cases is provided, which aims to enable controlled analysis of memory and reasoning in test generation.
提供机构:
新加坡国立大学
创建时间:
2025-08-01
原始信息汇总
UnLeakedTestBench数据集概述
数据集基本信息
- 数据集名称:UnLeakedTestBench
数据集来源
- 托管地址:https://github.com/huangd1999/UnLeakedTestBench
搜集汇总
数据集介绍

构建方式
ULT (UnLeakedTestbench) 数据集的构建采用了多阶段筛选流程,旨在确保数据的高质量和真实性。首先,从The Stack v2这一大型开源代码库中收集候选Python函数,通过严格的筛选条件保留具有高圈复杂度(cyclomatic complexity ≥10)的函数,以确保测试任务的挑战性。其次,通过自包含性检查排除依赖外部自定义函数或复杂类结构的函数,确保测试任务的独立性。最后,通过去污染处理,排除训练数据中可能存在的测试用例,形成最终的ULT数据集,共包含3,909个函数级任务。
特点
ULT数据集的主要特点在于其真实性和复杂性。所有函数均来自真实世界的Python代码,具有较高的圈复杂度(平均14.87),能够有效评估语言模型在复杂逻辑和多样化执行路径下的测试生成能力。此外,ULT通过严格的去污染处理避免了数据泄露问题,确保评估结果的科学性和可靠性。与现有基准相比,ULT在测试生成任务上表现出更高的挑战性,例如语言模型生成的测试用例在准确率、语句覆盖率、分支覆盖率和变异分数等指标上均显著低于其他基准。
使用方法
ULT数据集的使用方法主要围绕评估语言模型的测试生成能力展开。研究人员可以通过提供的函数代码,要求语言模型生成单元测试用例,并通过执行生成的测试用例评估其质量。评估指标包括测试生成准确率(Pass@k)、代码行覆盖率(LCov@k)、分支覆盖率(BCov@k)和变异分数(Mut@k)。此外,ULT还支持多轮迭代测试生成任务,通过动态更新提示语(prompt)引导模型生成多样化的测试用例,以全面评估模型的推理和泛化能力。
背景与挑战
背景概述
ULT (UnLeakedTestbench) 是由新加坡国立大学、伦敦国王学院、伦敦大学学院和剑桥大学的研究团队于2025年推出的一个专注于函数级单元测试生成的基准数据集。该数据集旨在解决现有基准在数据污染和结构简单性方面的局限性,通过多阶段筛选流程从真实世界的Python函数中精选出3,909个高复杂度的任务。ULT的核心研究问题在于如何准确评估大型语言模型(LLMs)在生成单元测试时的推理能力,而非依赖记忆。该数据集对软件工程领域的影响力在于提供了一个更真实、更具挑战性的评估平台,推动了自动化测试生成技术的发展。
当前挑战
ULT面临的挑战主要包括两个方面:领域问题的挑战和构建过程中的挑战。在领域问题方面,ULT旨在解决单元测试生成中的高复杂度和数据污染问题,确保生成的测试能够覆盖多样化的程序语句和执行分支。构建过程中的挑战包括:1) 确保所选函数具有足够的循环复杂度(cyclomatic complexity ≥10),以提供有意义的测试生成挑战;2) 保证函数的自包含性,避免依赖外部自定义函数或复杂类结构;3) 实施严格的数据去污染流程,防止测试用例泄露到LLMs的训练数据中;4) 验证函数的可测试性,确保能够生成至少三个不同的可执行测试输入。这些挑战使得ULT成为一个更具科学有效性和实用性的基准数据集。
常用场景
经典使用场景
在软件工程领域,单元测试是确保代码质量的关键环节。ULT数据集专注于从真实世界的Python函数生成单元测试,为研究人员提供了一个高复杂性和低数据污染的测试基准。通过包含3909个精心筛选的函数级任务,ULT能够有效评估大型语言模型(LLMs)在生成高质量测试用例方面的能力。其经典使用场景包括自动化测试生成工具的评估、LLMs在复杂代码逻辑下的测试覆盖能力分析,以及测试生成算法的性能比较。
实际应用
ULT数据集在实际应用中具有广泛的潜力。它可以用于开发更智能的自动化测试工具,帮助开发者在复杂代码库中快速生成高质量的单元测试。此外,ULT还可用于教育领域,作为学生学习单元测试和代码覆盖率的实践平台。在工业界,ULT的高复杂性和真实性使其成为评估和优化企业内部测试生成流程的理想选择。
衍生相关工作
ULT数据集已经衍生出多项相关研究和工作。例如,基于ULT的大规模实证研究比较了12种最先进的LLMs在测试生成任务上的性能。此外,ULT的设计理念也启发了其他领域的研究,如代码生成和缺陷检测。PLT作为ULT的对照基准,进一步促进了关于数据污染对LLMs性能影响的研究。这些工作共同推动了软件测试和LLMs应用的进步。
以上内容由遇见数据集搜集并总结生成



