Defectors
收藏arXiv2023-07-25 更新2024-06-21 收录
下载链接:
https://doi.org/10.5281/zenodo.7708984
下载链接
链接失效反馈官方服务:
资源简介:
Defectors是由达尔豪斯大学创建的大型Python数据集,专为缺陷预测设计。该数据集包含约213,000个源代码文件,涵盖24个流行的Python项目,涉及18个不同的应用领域。创建过程中,研究团队从多个项目中精心筛选出缺陷代码和非缺陷代码,通过多级噪声过滤确保数据质量。Defectors数据集适用于训练机器学习和深度学习模型,特别是在即时缺陷预测和行级缺陷预测方面,有助于提高软件质量保证的效率和精确性。
Defectors is a large-scale Python dataset developed by Dalhousie University, tailored specifically for defect prediction tasks. This dataset comprises approximately 213,000 source code files, covering 24 popular Python projects across 18 distinct application domains. During the dataset construction process, the research team carefully curated defective and non-defective code samples from multiple projects, and implemented multi-level noise filtering to ensure data quality. The Defectors dataset is suitable for training machine learning and deep learning models, particularly for just-in-time defect prediction and line-level defect prediction, which can improve the efficiency and accuracy of software quality assurance.
提供机构:
达尔豪斯大学
创建时间:
2023-03-09
搜集汇总
数据集介绍

构建方式
在软件工程领域,缺陷预测研究长期受限于数据集规模与质量。Defectors数据集的构建遵循严谨的学术流程,从24个热门Python项目中系统性地采集数据。研究团队首先依据项目成熟度与缺陷标签一致性筛选仓库,随后利用SZZ算法识别缺陷引入提交,并通过五级噪声过滤机制——包括关联提交数量、变更规模、文件类型及变更性质等多维度筛选——以最大限度降低误标率。缺陷无关提交则通过置信区间抽样实现近似均衡的类别分布,最终形成包含约21.3万份源代码文件的大规模数据集,并以Apache Parquet格式存储以保障数据访问效率。
特点
该数据集在缺陷预测领域展现出显著优势。其规模达到约21.3万个源代码文件,涵盖93K缺陷文件与120K无缺陷文件,体量约为现有最大数据集的二倍。类别分布经过精心设计,训练集内缺陷与无缺陷实例比例接近1:1,有效缓解了传统数据集中缺陷样本占比仅5%-26%的类别失衡问题。数据多样性体现在多维度:覆盖机器学习、自动化、物联网等18个应用领域,涉及24个独立组织的项目,突破了以往数据集中于单一组织或少数项目的局限。同时,作为首个以Python项目为核心的缺陷预测数据集,它丰富了以Java为主的数据生态,为跨语言模型研究提供了新的基础。
使用方法
该数据集支持即时缺陷预测与文件级缺陷预测双任务范式。对于即时预测任务,模型输入为提交差异(git diff);对于文件级预测,则采用提交后文件完整内容作为输入。两种任务的输出均为缺陷行号列表(若无缺陷则为空列表)。数据集已预先划分为训练、验证与测试集,其中训练集保持均衡类别分布,验证集与测试集则维持原始数据分布以贴近实际场景。研究者可直接加载Parquet格式数据,利用其提供的提交时间、文件路径、方法列表及缺陷行号等结构化字段,构建基于深度学习的缺陷定位与解释模型。数据集还可扩展应用于方法级缺陷预测,为软件质量保障研究提供细粒度分析基础。
背景与挑战
背景概述
在软件工程领域,缺陷预测作为保障软件质量的关键研究方向,旨在通过机器学习与深度学习技术识别代码中的潜在错误。2023年,达尔豪斯大学的研究团队推出了Defectors数据集,专注于Python项目的即时与行级缺陷预测。该数据集汇聚了约21.3万个源代码文件,覆盖24个热门Python项目,涉及机器学习、自动化及物联网等18个不同领域,其规模与多样性为训练Transformer等大型模型提供了坚实基础,显著推动了缺陷预测模型的泛化能力与精确度。
当前挑战
缺陷预测领域长期面临数据规模有限、类别不平衡及泛化性不足等挑战。现有数据集多基于Java项目构建,且缺陷实例占比仅5%-26%,导致模型性能受限。在构建Defectors数据集过程中,研究团队需克服SZZ算法引入的误标记问题,通过五级噪声过滤策略减少假阳性;同时,从多领域项目中筛选高质量缺陷提交,并平衡缺陷与无缺陷实例的比例,以确保数据集的可靠性与适用性。
常用场景
经典使用场景
在软件工程领域,缺陷预测是保障代码质量的关键研究方向。Defectors数据集凭借其大规模、多样化的Python源代码文件,为即时缺陷预测和行级缺陷预测提供了经典应用场景。该数据集覆盖了24个流行Python项目,跨越机器学习、自动化和物联网等18个不同领域,使得研究者能够训练和评估复杂的机器学习与深度学习模型,特别是需要大量多样化数据的Transformer架构,从而在细粒度层面精准定位软件缺陷。
解决学术问题
Defectors数据集有效应对了缺陷预测研究中长期存在的挑战,包括数据集规模不足、类别不平衡以及泛化能力有限等问题。通过提供约213K个源代码文件,并保持缺陷与非缺陷实例接近1:1的平衡比例,该数据集显著提升了模型训练的稳定性和性能。其跨领域、跨组织的多样性设计,有助于克服以往数据集局限于单一语言或组织的弊端,推动缺陷预测模型在更广泛场景下的适用性与鲁棒性,为软件质量保障研究提供了坚实的数据基础。
衍生相关工作
基于Defectors数据集,研究者已衍生出多项经典工作,进一步拓展了缺陷预测的技术边界。例如,结合该数据集训练的深度学习模型被用于缺陷解释任务,通过神经网络翻译代码结构来生成缺陷成因分析。同时,该数据集也促进了跨语言缺陷预测方法的探索,以及针对即时预测的个性化模型开发。这些工作不仅验证了数据集的有效性,还推动了软件工程领域向更智能化、自动化方向的演进,为后续研究提供了丰富的参考框架。
以上内容由遇见数据集搜集并总结生成



