five

JTeC

收藏
github2024-02-29 更新2024-05-31 收录
下载链接:
https://github.com/JTeCDataset/JTeC
下载链接
链接失效反馈
官方服务:
资源简介:
JTeC是一个大型Java测试类集合,用于测试代码分析和处理。该数据集通过筛选GitHub仓库、选择Java仓库、识别测试类、仓库选择、本地存储测试类和质量过滤等步骤生成。

JTeC is a comprehensive collection of Java test classes designed for code analysis and processing. This dataset is generated through a series of steps including filtering GitHub repositories, selecting Java repositories, identifying test classes, repository selection, local storage of test classes, and quality filtering.
创建时间:
2019-05-16
原始信息汇总

数据集概述

名称: JTeC: A Large Collection of Java Test Classes for Test Code Analysis and Processing

描述: 该数据集包含用于测试代码分析和处理的大量Java测试类。数据集的生成过程包括多个步骤,如GitHub仓库筛选、Java仓库选择、测试类识别、仓库选择、测试类本地存储及质量过滤。

数据集生成步骤

  1. 仓库筛选

    • 脚本: repository_filtering.py
    • 功能: 生成GitHub公共仓库索引,输出包含仓库ID、创建者用户名、仓库名称和关联编程语言的本地.csv文件。
  2. Java仓库选择与测试类识别

    • 脚本: selection_test_count.py
    • 功能: 选择Java仓库并识别其中的测试类,输出包含用户、仓库、ID、哈希、日期、测试数量等信息的本地.csv文件。
  3. 仓库选择

    • 脚本: select.py
    • 功能: 在每个分叉项目中选择包含更多测试类的原始或分叉项目,输出与selection_test_count.py类似的.csv文件。
  4. 测试类下载

    • 脚本: download_tests.py
    • 功能: 下载由select.py选择的仓库中的测试类,输出包含用户、仓库、ID、分叉ID、哈希、日期、测试数量、SLOC、大小等信息的本地.csv文件。
  5. 质量过滤

    • 脚本: quality_filter.py
    • 功能: 根据用户定义的质量标准清理数据集。

质量过滤配置

  • 配置文件: config.json
  • 可配置参数: 包括测试套件的克隆、索引创建、原始项目选择、分叉项目选择、年份范围、测试套件大小、SLOC数量和字节数等。

引用信息

  • BibTeX引用:

    @misc{JTeC2019, author = {Corò, Federico and Verdecchia, Roberto and Cruciani, Emilio and Miranda, Breno and Bertolino, Antonia}, title = {{JTeC: A Large Collection of Java Test Classes for Test Code Analysis and Processing}}, month = may, year = 2019, doi = {10.5281/zenodo.3711509}, url = {https://doi.org/10.5281/zenodo.3711509} }

搜集汇总
数据集介绍
main_image_url
构建方式
JTeC数据集的构建过程经过精心设计,以确保其全面性和高质量。首先,通过GitHub API筛选公共仓库,并从中选择Java项目。接着,识别这些项目中的测试类,并进一步筛选出包含最多测试类的原始或分叉项目。随后,下载这些测试类的源代码,并生成包含详细信息的CSV文件。最后,通过质量过滤脚本对数据集进行清理,确保其符合用户定义的质量标准。整个过程通过一系列自动化脚本实现,确保了数据集的可重复性和一致性。
特点
JTeC数据集以其规模庞大和多样性著称,涵盖了大量的Java测试类,适用于测试代码分析和处理。该数据集不仅包含测试类的源代码,还提供了丰富的元数据,如测试类的数量、代码行数、文件大小等。此外,数据集的质量过滤功能允许用户根据自定义标准对数据进行修剪,从而满足特定研究需求。JTeC的构建过程透明且可重复,确保了数据集的可靠性和可扩展性。
使用方法
使用JTeC数据集时,用户首先需要克隆GitHub仓库,并确保满足Python 3.0及以上版本的环境要求。接着,用户需在`token.txt`文件中填写GitHub用户名和访问令牌。通过执行`JTeC_generator.sh`脚本,用户可以按顺序生成数据集。生成完成后,用户可运行`quality_filter.py`脚本,根据配置文件`config.json`中的参数对数据集进行质量过滤。该配置文件中包含多个可自定义的变量,如测试套件的大小、代码行数等,用户可根据需求调整这些参数,以获得符合研究目标的数据子集。
背景与挑战
背景概述
JTeC数据集由Federico Corò、Roberto Verdecchia、Emilio Cruciani、Breno Miranda和Antonia Bertolino等研究人员于2019年创建,旨在为Java测试代码的分析与处理提供大规模的数据支持。该数据集通过从GitHub公共仓库中筛选Java项目,并识别其中的测试类,构建了一个包含大量Java测试类的集合。JTeC的创建不仅为软件测试领域的研究提供了丰富的实验数据,还推动了自动化测试工具的开发与优化。其核心研究问题在于如何高效地从开源项目中提取并整理测试代码,以支持测试代码的质量评估、测试用例生成等研究任务。该数据集通过严格的筛选和质量控制,确保了数据的多样性和代表性,对软件工程领域的测试研究产生了深远影响。
当前挑战
JTeC数据集在构建过程中面临多重挑战。首先,从GitHub海量仓库中筛选出符合要求的Java项目并识别其中的测试类,需要处理复杂的代码结构和多样化的项目布局,这对自动化工具的准确性和效率提出了较高要求。其次,数据集的构建涉及大量的GitHub API请求,如何有效管理这些请求并处理可能出现的错误,是技术实现中的一大难点。此外,数据集的质量控制也是一个关键挑战,如何定义并应用合理的质量标准,以确保数据的可靠性和适用性,是数据集构建过程中需要反复权衡的问题。最后,数据集的复现性要求所有步骤和脚本的透明性与可操作性,这对文档的完整性和脚本的健壮性提出了更高的要求。
常用场景
经典使用场景
JTeC数据集在软件工程领域中被广泛用于测试代码的分析与处理。研究者通过该数据集能够深入探讨Java测试类的结构、质量及其在软件开发中的作用。数据集中的测试类来源于GitHub上的公开Java项目,涵盖了多样化的测试场景,为测试代码的自动化分析提供了丰富的实验材料。
解决学术问题
JTeC数据集解决了测试代码分析中的多个关键问题,例如测试代码的质量评估、测试用例的覆盖率分析以及测试代码的自动化生成。通过提供大规模的Java测试类集合,该数据集为研究者提供了标准化和可重复的实验环境,推动了测试代码分析领域的研究进展。
衍生相关工作
基于JTeC数据集,研究者们开展了多项经典工作,例如测试代码的缺陷检测、测试用例的优先级排序以及测试代码的克隆检测。这些研究不仅丰富了测试代码分析的理论体系,还为实际软件开发中的测试实践提供了有力的支持。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作