DEFECTS4J-TRANS
收藏arXiv2025-03-12 更新2025-03-14 收录
下载链接:
http://arxiv.org/abs/2503.09217v1
下载链接
链接失效反馈官方服务:
资源简介:
DEFECTS4J-TRANS数据集是由对Defects4J数据集应用程序变换得到的,变换保持了原始缺陷语义但改变了代码内容。该数据集包含了438个单函数缺陷,用于评估大型语言模型在程序修复任务上的泛化能力。通过对比Defects4J和DEFECTS4J-TRANS上的修复结果,发现模型在新的数据集上性能下降,说明现有模型在面对新的代码变化时存在泛化问题。
The DEFECTS4J-TRANS dataset is constructed by applying program transformations to the Defects4J dataset, where the transformations preserve the original defect semantics while altering the code content. It contains 438 single-function defects, and is designed to evaluate the generalization capability of large language models (LLMs) on program repair tasks. By comparing the repair performance on Defects4J and DEFECTS4J-TRANS, it is found that the model's performance degrades on the new dataset, indicating that existing models have generalization issues when facing novel code variations.
提供机构:
天津大学智能与计算学院, 重庆大学大数据与软件工程学院
创建时间:
2025-03-12
搜集汇总
数据集介绍

构建方式
为了评估大型语言模型(LLM)在自动程序修复(APR)任务中的泛化能力,研究团队创建了一个名为DEFECTS4J-TRANS的新数据集。该数据集通过对原始Defects4J数据集中的代码进行转换,在保持原始语义不变的情况下,改变了代码内容。这种转换包括变量重命名、循环结构转换、switch语句转换、死代码注入和布尔表达式转换等操作,旨在生成与原始数据集在语义上等价但代码内容不同的数据集,以减少LLM在训练数据上的过拟合问题。
特点
DEFECTS4J-TRANS数据集的特点在于其通过代码转换保持了与原始Defects4J数据集的语义一致性,同时改变了代码结构,这有助于评估LLM在面临新代码结构时的泛化能力。此外,该数据集还包含了丰富的修复相关信息的实例,如bug报告、触发测试和错误消息等,这些信息可以作为输入提示的一部分,以探索LLM在接收额外修复相关信息时的表现。
使用方法
使用DEFECTS4J-TRANS数据集时,研究者可以通过将LLM应用于该数据集,并与在原始Defects4J数据集上的表现进行比较,来评估LLM的泛化能力。此外,研究者还可以通过设计不同的输入提示,例如包含修复相关信息的提示,来探索这些信息对LLM修复能力的影响。通过分析LLM在不同提示下的修复结果,研究者可以更好地理解LLM在APR任务中的性能瓶颈,并为提高LLM的泛化能力提供方向。
背景与挑战
背景概述
随着现代软件系统的规模和复杂性日益增长,软件缺陷的数量和复杂性也随之增加,给组织和最终用户带来了巨大的经济损失。自动化程序修复(APR)技术应运而生,旨在自动修复软件缺陷,以节省开发人员的时间和精力。近年来,大型语言模型(LLM)在各种软件工程任务中展现出卓越的性能,推动了基于LLM的APR方法的涌现。然而,这些方法主要在少数几个知名数据集上进行评估,如Defects4J,这引发了关于它们在新数据集上有效性的疑问。为了解决这个问题,研究人员创建了一个新的数据集DEFECTS4J-TRANS,通过对Defects4J进行程序转换,同时保持原始语义。该数据集的创建为评估LLM在APR任务中的泛化能力提供了一个新的基准。此外,DEFECTS4J-TRANS的构建也揭示了一些关于LLM泛化能力的挑战。
当前挑战
DEFECTS4J-TRANS数据集的创建和评估揭示了LLM在APR任务中的泛化能力方面的挑战。首先,该数据集的构建过程中采用了程序转换技术,以确保原始语义的保持,这为评估LLM在处理代码内容变化时的泛化能力提供了基础。其次,实验结果表明,所有研究的LLM在DEFECTS4J-TRANS上的表现都有限,这表明LLM在APR任务中存在泛化能力不足的问题。此外,尽管将额外的修复相关信息纳入修复提示中可以显著提高LLM的能力,但性能仍然低于原始结果,这表明仅靠提示工程不足以显著提高LLM的修复能力。因此,DEFECTS4J-TRANS数据集的创建和评估为我们理解LLM在APR任务中的泛化能力提供了重要的见解,并揭示了提高LLM泛化能力的挑战。
常用场景
经典使用场景
DEFECTS4J-TRANS 数据集主要用于评估大型语言模型(LLM)在自动程序修复(APR)任务中的泛化能力。通过对 DEFECTS4J 数据集进行转换,DEFECTS4J-TRANS 保持了原始语义的同时改变了代码内容,为研究 LLM 在面对新数据集时的表现提供了可能。
衍生相关工作
DEFECTS4J-TRANS 数据集的提出和研究成果对相关领域产生了积极的影响。一方面,该数据集为研究 LLM 在 APR 任务中的泛化能力提供了新的思路和方法,推动了该领域的研究进展。另一方面,该数据集的研究成果也为 LLM-based APR 方法的改进和优化提供了参考,促进了该领域的技术发展。
数据集最近研究
最新研究方向
在软件工程领域,自动程序修复(APR)已成为研究的热点。基于大型语言模型(LLM)的APR方法因其卓越的性能而备受关注。然而,这些方法主要在几个知名的基准数据集上进行评估,如Defects4J,这引发了对它们在处理新数据集时的有效性的质疑。为了解决这个问题,研究人员提出了DEFECTS4J-TRANS数据集,它通过保持原始语义的同时改变代码内容,从Defects4J数据集转换而来。研究结果表明,所有测试的LLM在APR任务中的泛化能力有限,在DEFECTS4J-TRANS数据集上的正确和合理的补丁数量平均下降了49.48%和42.90%。进一步的研究表明,尽管在修复提示中纳入额外的修复相关信息可以显著提高LLM的能力(使正确和合理的补丁数量分别增加了高达136.67%和121.82%),但性能仍然低于它们在原始数据集上的结果。这表明,仅凭提示工程不足以显著提高LLM的修复能力。这项研究为未来的APR研究提供了重要的方向,并强调了在评估LLM时需要更全面的方法。
相关研究论文
- 1Evaluating the Generalizability of LLMs in Automated Program Repair天津大学智能与计算学院, 重庆大学大数据与软件工程学院 · 2025年
以上内容由遇见数据集搜集并总结生成



