five

jitx/Methods2Test_java_unit_test_code

收藏
Hugging Face2023-08-30 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/jitx/Methods2Test_java_unit_test_code
下载链接
链接失效反馈
官方服务:
资源简介:
微软创建了这个大型的Java JUnit测试用例数据集,包含与其对应的焦点方法。数据集共包含780k对JUnit测试用例和焦点方法,这些数据是从GitHub上的91K个Java开源项目中提取的。测试用例和焦点方法之间的映射基于启发式规则和Java开发者的最佳实践。数据集的结构包括目标测试用例、焦点方法、焦点类名、构造函数、方法签名和公共字段等特征。原始作者通过检查训练集中的97个样本来验证启发式规则的正确性,发现90.72%的样本在测试用例和焦点方法之间有正确的链接。

This large-scale Java JUnit test case dataset was created by Microsoft, which includes corresponding focal methods paired with each test case. The dataset consists of 780k pairs of JUnit test cases and focal methods, extracted from 91K open-source Java projects hosted on GitHub. The mapping between test cases and focal methods is based on heuristic rules and best practices for Java developers. The dataset structure includes features such as target test cases, focal methods, focal class names, constructors, method signatures, and public fields. The original authors verified the correctness of the heuristic rules by inspecting 97 samples from the training set, and found that 90.72% of the samples had correct links between test cases and focal methods.
提供机构:
jitx
原始信息汇总

数据集概述

数据集基本信息

  • 许可证: MIT
  • 数据文件配置:
    • 训练集路径: data/train-*
    • 测试集路径: data/test-*
  • 数据集大小:
    • 下载大小: 558984469 字节
    • 数据集总大小: 4307277221 字节

数据集特征

  • 目标: 字符串类型
  • src_fm: 字符串类型
  • src_fm_fc: 字符串类型
  • src_fm_fc_co: 字符串类型
  • src_fm_fc_ms: 字符串类型
  • src_fm_fc_ms_ff: 字符串类型

数据集分割

  • 训练集:
    • 字节数: 3399525755
    • 示例数: 624022
  • 测试集:
    • 字节数: 907751466
    • 示例数: 156922

任务类别

  • 文本生成

语言

  • 英语

数据集标签

  • 单元测试
  • Java
  • 代码

数据集结构

  • 目标: <TEST_CASE>
  • src_fm: <FOCAL_METHOD>
  • src_fm_fc: <FOCAL_CLASS_NAME> <FOCAL_METHOD>
  • src_fm_fc_co: <FOCAL_CLASS_NAME> <FOCAL_METHOD> <CONTRSUCTORS>
  • src_fm_fc_ms: <FOCAL_CLASS_NAME> <FOCAL_METHOD> <CONTRSUCTORS> <METHOD_SIGNATURES>
  • src_fm_fc_ms_ff: <FOCAL_CLASS_NAME> <FOCAL_METHOD> <CONTRSUCTORS> <METHOD_SIGNATURES> <FIELDS>

焦点上下文级别

  • FM: 焦点方法
  • FM_FC: 焦点方法 + 焦点类名
  • FM_FC_CO: 焦点方法 + 焦点类名 + 构造函数签名
  • FM_FC_MS: 焦点方法 + 焦点类名 + 构造函数签名 + 公共方法签名
  • FM_FC_MS_FF: 焦点方法 + 焦点类名 + 构造函数签名 + 公共方法签名 + 公共字段

限制

  • 原始作者通过检查训练集中的97个样本(95%置信水平,10%误差范围)验证了启发式规则。90.72%的样本正确链接了测试案例和相应的焦点方法。
搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程领域,单元测试作为保障代码质量的关键环节,其自动化生成技术日益受到关注。Methods2Test数据集的构建过程体现了系统化数据采集与处理的严谨性。该数据集从GitHub平台上91,000个开源Java项目中提取了780,000对JUnit测试用例与焦点方法的对应关系。构建过程基于启发式规则与Java开发最佳实践,通过多层级上下文信息(如焦点方法、类名、构造函数签名、公共方法签名及公共字段)的逐步扩充,形成了结构化的数据表示。为确保映射准确性,研究者采用统计显著性抽样方法,以95%置信水平和10%误差范围对训练集样本进行人工验证,最终确认90.72%的样本具有正确的测试用例-方法关联。
特点
该数据集在软件测试研究领域展现出鲜明的技术特征。其核心在于提供了从焦点方法到完整测试用例的渐进式上下文表示,涵盖FM(仅焦点方法)、FM_FC(增加类名)、FM_FC_CO(补充构造函数)、FM_FC_MS(融入公共方法签名)及FM_FC_MS_FF(包含公共字段)五个层级。这种分层设计模拟了开发者编写测试时的认知过程,为模型学习测试生成逻辑提供了丰富的语义线索。数据集规模庞大,包含62万余训练样本与15万余测试样本,均源自真实开源项目,确保了数据的多样性与实践代表性。
使用方法
该数据集主要服务于基于深度学习的单元测试生成任务。研究者可利用其分层结构探究不同上下文信息对测试生成质量的影响。典型使用流程包括:加载训练集与测试集分割,提取target字段作为测试用例生成目标,并选择src_fm至src_fm_fc_ms_ff中任一上下文表示作为模型输入。在模型训练阶段,可构建序列到序列的神经网络架构,学习从方法上下文到测试代码的映射关系。评估时,通过对比生成测试与真实测试在代码相似度、编译通过率及测试覆盖率等指标上的表现,验证模型有效性。数据集亦适用于测试用例推荐、测试代码补全等衍生研究场景。
背景与挑战
背景概述
在软件工程领域,自动化单元测试生成是提升开发效率与代码质量的关键研究方向。Methods2Test数据集由微软于2022年创建,旨在为Java语言的JUnit测试用例生成提供大规模、高质量的训练资源。该数据集从GitHub上的91,000个开源Java项目中,提取了78万对测试用例与焦点方法的对应关系,其构建基于启发式规则与Java开发最佳实践。这一数据集的发布,显著推动了基于深度学习的代码生成模型在测试用例自动合成任务上的进展,为软件测试智能化奠定了重要基础。
当前挑战
Methods2Test数据集致力于解决单元测试自动生成的挑战,其核心在于如何准确理解焦点方法的语义并生成功能正确、覆盖全面的测试代码。构建过程中的主要挑战包括:从海量开源项目中精确匹配测试用例与对应焦点方法的启发式规则设计,这需要深入理解Java测试惯例;同时,数据清洗与对齐过程中需处理代码风格的多样性与项目结构的异构性,确保数据质量。尽管作者通过抽样验证达到了90.72%的匹配准确率,但剩余误差仍可能影响模型训练的可靠性,对生成测试的语义正确性构成潜在风险。
常用场景
经典使用场景
在软件工程领域,单元测试是确保代码质量与可靠性的核心环节。Methods2Test数据集通过提供大规模的Java单元测试用例与对应焦点方法的配对,为自动化测试生成研究奠定了数据基础。该数据集最经典的使用场景在于训练和评估基于深度学习的代码生成模型,特别是针对从Java方法自动生成JUnit测试用例的任务。研究者利用其丰富的上下文信息,如类名、构造函数和方法签名,来探索模型在理解代码语义和结构方面的能力,从而推动智能测试辅助工具的发展。
解决学术问题
该数据集有效解决了软件测试自动化中的关键学术问题,即如何从源代码中自动生成高质量、覆盖全面的单元测试。传统测试编写依赖人工经验,效率低下且易出错。Methods2Test通过海量开源项目数据,为研究提供了标准化的基准,支持探索测试用例与焦点方法之间的映射关系。其意义在于促进了代码理解与生成模型的进步,帮助学术界深入分析测试生成的准确性、可读性和功能性,对提升软件维护的自动化水平产生了深远影响。
衍生相关工作
围绕Methods2Test数据集,已衍生出多项经典研究工作。例如,原始论文《Methods2Test: A dataset of focal methods mapped to test cases》提出了数据集构建的启发式规则和评估框架。后续研究利用该数据集训练了如CodeT5、CodeBERT等预训练模型,优化了测试生成的性能。此外,一些工作探索了多上下文表示对生成质量的影响,或将其扩展至其他编程语言。这些衍生工作共同推动了软件工程与人工智能交叉领域的发展,为自动化测试技术提供了丰富的理论和方法基础。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作