fals3/methods2test_small
收藏官方服务:
资源简介:
微软创建的methods2test数据集,包含了Java JUnit测试用例及其对应的焦点方法。这些数据是从GitHub上的91K个开源Java项目中提取的,共包含780k对JUnit测试用例和焦点方法。该数据集是methods2test数据集的一个较小子集,提供了基于原始源代码的不同上下文级别的访问(例如,保留了换行符)。测试用例和相关类也可用。该子集是通过从每个91k项目中随机选择一个样本创建的。测试用例和焦点方法之间的映射基于启发式规则和Java开发者的最佳实践。
微软创建的methods2test数据集,包含了Java JUnit测试用例及其对应的焦点方法。这些数据是从GitHub上的91K个开源Java项目中提取的,共包含780k对JUnit测试用例和焦点方法。该数据集是methods2test数据集的一个较小子集,提供了基于原始源代码的不同上下文级别的访问(例如,保留了换行符)。测试用例和相关类也可用。该子集是通过从每个91k项目中随机选择一个样本创建的。测试用例和焦点方法之间的映射基于启发式规则和Java开发者的最佳实践。
提供机构:
fals3原始信息汇总
数据集概述
该数据集由Microsoft创建,包含Java JUnit测试用例及其对应的焦点方法。数据集包含78万个JUnit测试用例和焦点方法对,这些对是从GitHub上托管的9.1万个Java开源项目中提取的。这是一个较小的组合版本子集,提供了基于原始源代码的不同上下文级别(例如,保留换行符)的便捷访问。测试用例及其关联类也提供。
数据集配置
数据集包含多个配置,每个配置包含训练、测试和验证数据文件。以下是各配置的详细信息:
配置 fm
- 特征:
id: 字符串text: 字符串
- 分割:
train: 4696431字节, 7440个样本test: 642347字节, 1017个样本validation: 662917字节, 953个样本
- 下载大小: 2633268字节
- 数据集大小: 6001695字节
配置 fm+fc
- 特征:
id: 字符串text: 字符串
- 分割:
train: 5387123字节, 7440个样本test: 738049字节, 1017个样本validation: 757167字节, 953个样本
- 下载大小: 2925807字节
- 数据集大小: 6882339字节
配置 fm+fc+c
- 特征:
id: 字符串text: 字符串
- 分割:
train: 5906873字节, 7440个样本test: 820149字节, 1017个样本validation: 824441字节, 953个样本
- 下载大小: 3170873字节
- 数据集大小: 7551463字节
配置 fm+fc+c+m
- 特征:
id: 字符串text: 字符串
- 分割:
train: 11930672字节, 7440个样本test: 1610045字节, 1017个样本validation: 1553249字节, 953个样本
- 下载大小: 5406454字节
- 数据集大小: 15093966字节
配置 fm+fc+c+m+f
- 特征:
id: 字符串text: 字符串
- 分割:
train: 12722890字节, 7440个样本test: 1713683字节, 1017个样本validation: 1654607字节, 953个样本
- 下载大小: 5753116字节
- 数据集大小: 16091180字节
配置 fm+fc+c+m+f+t+tc
- 特征:
id: 字符串source: 字符串target: 字符串
- 分割:
train: 18332635字节, 7440个样本test: 2461169字节, 1017个样本validation: 2510969字节, 953个样本
- 下载大小: 8280985字节
- 数据集大小: 23304773字节
配置 fm+fc+c+m+t+tc
- 特征:
id: 字符串source: 字符串target: 字符串
- 分割:
train: 17537661字节, 7440个样本test: 2357359字节, 1017个样本validation: 2409506字节, 953个样本
- 下载大小: 8178222字节
- 数据集大小: 22304526字节
配置 fm+fc+c+t+tc
- 特征:
id: 字符串source: 字符串target: 字符串
- 分割:
train: 11445562字节, 7440个样本test: 1565365字节, 1017个样本validation: 1676986字节, 953个样本
- 下载大小: 5944482字节
- 数据集大小: 14687913字节
配置 fm+fc+t+tc
- 特征:
id: 字符串source: 字符串target: 字符串
- 分割:
train: 10923038字节, 7440个样本test: 1483265字节, 1017个样本validation: 1609296字节, 953个样本
- 下载大小: 5715335字节
- 数据集大小: 14015599字节
配置 fm+t
- 特征:
id: 字符串source: 字符串target: 字符串
- 分割:
train: 8889443字节, 7440个样本test: 1207763字节, 1017个样本validation: 1336798字节, 953个样本
- 下载大小: 4898458字节
- 数据集大小: 11434004字节
配置 fm_indented
- 特征:
id: 字符串text: 字符串
- 分割:
train: 5054397字节, 7440个样本test: 692948字节, 1017个样本validation: 714462字节, 953个样本
- 下载大小: 2703115字节
- 数据集大小: 6461807字节
配置 t
- 特征:
id: 字符串source: 字符串target: 字符串
- 分割:
train: 4316096字节, 7440个样本test: 582266字节, 1017个样本validation: 689647字节, 953个样本
- 下载大小: 2434024字节
- 数据集大小: 5588009字节
配置 t+tc
- 特征:
id: 字符串source: 字符串target: 字符串
- 分割:
train: 5648321字节, 7440个样本test: 761386字节, 1017个样本validation: 867350字节, 953个样本
- 下载大小: 3024686字节
- 数据集大小: 7277057字节
配置 t_indented
- 特征:
id: 字符串source: 字符串target: 字符串
- 分割:
train: 4606253字节, 7440个样本test: 623576字节, 1017个样本validation: 734221字节, 953个样本
- 下载大小: 2496661字节
- 数据集大小: 5964050字节
数据集模式
数据集包含多种上下文级别的表示,具体如下:
fm: 焦点方法fm+fc: 焦点方法 + 焦点类名fm+fc+c: 焦点方法 + 焦点类名 + 构造函数签名fm+fc+c+m: 焦点方法 + 焦点类名 + 构造函数签名 + 公共方法签名fm+fc+c+m+f: 焦点方法 + 焦点类名 + 构造函数签名 + 公共方法签名 + 公共字段
每个焦点上下文还提供了测试用例及其类名。
搜集汇总
数据集介绍

构建方式
在软件工程领域,自动化单元测试生成是提升代码质量与开发效率的关键技术。fals3/methods2test_small 数据集源于微软构建的 methods2test 数据集,其原始版本从 GitHub 上 91K 个 Java 开源项目中提取了 78 万对 JUnit 测试用例与焦点方法。本子集通过从每个项目中随机仅选取一个样本进行精简,保留了原始代码中的换行等格式信息,并基于启发式规则与 Java 开发者最佳实践建立了测试用例与焦点方法之间的映射关系。数据集提供了多种上下文配置,例如仅包含焦点方法源代码的 fm 配置,以及逐步添加焦点类名、构造函数签名、公共方法签名和公共字段的递增式组合,从而支持不同粒度的代码上下文研究。
特点
该数据集的核心特点在于其层次化的焦点上下文设计,能够系统性地探究不同代码信息对测试生成模型性能的影响。从仅含焦点方法的极简表示,到融入焦点类名、构造函数、方法签名乃至字段的全方位上下文,每种配置都对应着特定的语义假设——例如构造函数有助于对象实例化,而公共方法可能用于测试环境的搭建与拆除。此外,数据集同时提供了测试用例及其所属类名,并包含缩进版本,为代码生成任务提供了丰富的输入变体。其规模虽小但结构精密,包含约 7440 个训练样本、1017 个测试样本和 953 个验证样本,适用于快速迭代与消融实验。
使用方法
使用该数据集时,研究者可通过 HuggingFace Datasets 库轻松加载指定配置,例如加载仅含焦点方法的 fm 配置或包含完整上下文的 fm+fc+c+m+f 配置。数据以文本形式呈现,每条记录包含唯一标识符 id 以及 source 和 target 字段,分别对应输入代码上下文与目标测试用例。用户可根据研究目标选择合适的上下文粒度,用于训练或评估代码生成模型。该数据集特别适合用于探究代码上下文对测试生成质量的影响,或作为基准测试集比较不同模型在 Java 单元测试生成任务上的表现。
背景与挑战
背景概述
在软件工程领域,自动化测试用例生成一直是提升开发效率与代码质量的关键研究方向。微软研究院于2022年推出了Methods2Test数据集,旨在为基于深度学习的测试用例生成提供大规模、高质量的基准资源。该数据集由Tufano等人构建,从91,000个Java开源项目中提取了780,000对JUnit测试用例及其对应的焦点方法,利用启发式规则与Java开发者最佳实践进行映射。fals3/methods2test_small作为其精简子集,从每个项目中随机选取一个样本,保留了多种上下文级别的配置(如焦点方法、类名、构造函数签名等),为研究不同信息粒度对测试生成的影响提供了灵活的实验平台。该数据集的发布显著推动了代码到测试的神经翻译模型发展,成为该领域的重要评估基准。
当前挑战
Methods2Test数据集所面临的挑战首先体现在领域问题层面:自动化测试用例生成的核心难题在于如何从焦点方法中准确推断出覆盖边界条件与异常路径的测试逻辑,尤其当方法依赖复杂外部状态或涉及多线程交互时,模型易产生语义不完整或冗余的测试代码。在构建过程中,数据集依赖启发式规则从GitHub项目提取映射关系,这可能导致测试用例与焦点方法之间的关联存在噪声,例如误将集成测试标记为单元测试。此外,不同上下文配置(如仅含焦点方法vs.包含类字段)虽提供了研究维度,但如何平衡上下文信息量与模型泛化能力仍是一个未解难题。数据集的规模限制(每个项目仅一个样本)也使得对罕见编程模式的学习能力受限。
常用场景
经典使用场景
在软件工程与自然语言处理交叉领域中,fals3/methods2test_small数据集被广泛用于自动化单元测试生成这一核心任务。研究者借助该数据集,将Java JUnit测试用例与对应焦点方法(focal method)的源代码进行配对,训练序列到序列(Seq2Seq)模型或大型语言模型,以学习从焦点方法到测试用例的映射规律。该数据集的精巧之处在于提供了多种上下文配置,从仅包含焦点方法源码(fm)到逐步融入类名、构造函数签名、公共方法签名及字段信息(fm+fc+c+m+f),使得模型能够探究不同粒度上下文对测试生成质量的影响,成为评估代码理解与生成能力的标准基准。
实际应用
在实际软件开发中,该数据集驱动的模型可集成至持续集成(CI)流水线,自动为新增或修改的Java方法生成JUnit测试用例,显著降低开发者的手工编写负担。企业级应用场景包括遗留代码的测试覆盖提升、代码重构后的回归测试快速生成,以及教学环境中为初学者提供测试编写范例。例如,基于该数据集的微调模型能够根据焦点方法源码,结合类结构信息,生成包含Mock对象初始化、异常场景验证的完整测试代码,直接适配Maven或Gradle构建体系,展现出在工业级代码库中的实用潜力。
衍生相关工作
该数据集催生了多项经典研究工作,如基于CodeT5和PLBART等预训练模型在测试生成任务上的微调与评估,验证了统一预训练范式在代码理解与生成中的有效性。后续工作进一步探索了利用强化学习优化测试覆盖率、引入测试断言多样性生成等方向。此外,研究者基于此数据集构建了多任务学习框架,联合建模焦点方法理解与测试用例生成,并衍生出针对代码片段中长距离依赖建模的注意力机制改进方案。这些衍生工作不仅深化了对代码语义建模的认识,也推动了自动化测试生成领域从规则驱动向数据驱动范式的转型。
以上内容由遇见数据集搜集并总结生成



