five

HE+Fix, MBPP+Fix, MBPP+Fix (Hard)

收藏
github2025-02-07 更新2025-02-10 收录
下载链接:
https://github.com/archiki/UTGenDebug
下载链接
链接失效反馈
官方服务:
资源简介:
三个用于调试的数据集,具体描述未在README中提供。

Three datasets intended for debugging purposes, with no specific descriptions provided in the README.
创建时间:
2025-02-03
原始信息汇总

学习生成用于自动调试的单元测试

作者:Archiki PrasadElias Stengel-EskinJustin Chih-Yao ChenZaid KhanMohit Bansal

概述

本仓库包含我们论文学习生成用于自动调试的单元测试的代码。我们介绍了UTGen,一种用于教导模型生成单元测试(给定函数的输入和输出)的数据整理和训练方法,以及UTDebug,一种使用生成的单元测试进行自动代码调试的调试管道,该管道使用LLMs。在此仓库中,我们提供了用于评估单元测试的外部评估代码UTDebug,以及一个用于评估攻击率、输出准确性和acc $cap$ attack的脚本,该脚本在三个调试数据集上运行:HE+Fix、MBPP+Fix和MBPP+Fix (Hard)。

依赖

本项目基于Python 3.10.11构建。所有依赖可以通过以下命令安装: pip install -r requirements.txt

脚本与运行UTDebug

内部评估

  • 运行脚本he_intrinsic_eval.py以评估HE+Fix,运行mbpp_intrinsic_eval.py以评估MBPP+Fix和MBPP+Fix Hard。对于后者,添加--hard参数。当评估现成模型时,请传递--eval-base参数,或者通过--ckpt-dir提供训练的LoRA检查点目录。对于随机采样的UTs,使用--random参数。

运行UTDebug

单元测试生成方法通过--unit-mode参数提供。使用--unit-mode joint_sc进行提示失败的UTs,使用--unit-mode train_joint_sc进行UTGen或任何训练过的模型,使用--unit-mode random_joint_sc进行随机采样的UTs。请注意,默认情况下,round 0评估数据集中的给定错误代码,因此设置--max-turns <调试轮数> + 1

参考文献

请引用我们的论文:

@article{prasad2025unit, title = {Learning to Generate Unit Tests for Automated Debugging}, author = {Prasad, Archiki and Stengel-Eskin, Elias and Chen, Justin Chih-Yao and Khan, Zaid and Bansal, Mohit}, year = {2025}, journal={arXiv preprint 2502.01619} }

搜集汇总
数据集介绍
main_image_url
构建方式
HE+Fix、MBPP+Fix以及MBPP+Fix (Hard)这三个数据集的构建,是以培养模型生成单元测试(为特定函数提供输入和输出)的能力为核心。该过程涉及了UTGen数据校准与训练方法,以及UTDebug调试管道,后者使用生成的单元测试实现自动化代码调试。数据集的构建基于Python环境,并通过脚本进行内在评估与调试管道的运行。
特点
本数据集的特点在于,其不仅包含了用于训练的单元测试生成模型的数据,还提供了用于评估单元测试外在效果的UTDebug调试管道。数据集根据错误代码和相应的修复进行了精细的划分,旨在通过不同难度级别的数据(MBPP+Fix (Hard))来训练和评估模型在生成单元测试方面的性能。
使用方法
使用该数据集时,首先需要确保Python环境的搭建,并通过提供的requirements.txt文件安装依赖。针对内在评估,研究者可运行特定的脚本,如he_intrinsic_eval.py和mbpp_intrinsic_eval.py,并通过相应参数选择不同的评估模式。运行UTDebug时,可通过指定--unit-mode参数来选择不同的单元测试生成方式,并通过其他参数来控制调试回合数和模型行为。
背景与挑战
背景概述
HE+Fix, MBPP+Fix, MBPP+Fix (Hard)数据集,是在计算机科学领域中对自动化调试进行研究的重要成果。该数据集由Archiki Prasad、Elias Stengel-Eskin、Justin Chih-Yao Chen、Zaid Khan和Mohit Bansal等研究人员于2025年创建,旨在通过训练模型生成单元测试(给定函数的输入和输出),并利用生成的单元测试进行自动化代码调试。该数据集的创建对自动化调试领域产生了深远影响,为相关研究提供了宝贵的实验资源。
当前挑战
该数据集在构建过程中面临的主要挑战包括:1)如何有效地生成具有较高覆盖率的单元测试,以确保能够准确地定位代码中的错误;2)如何构建一个高效、可靠的自动化调试流程,以便在实际应用中发挥重要作用。此外,数据集在解决自动化调试领域问题方面的挑战还包括:如何提高测试生成的准确性,以及如何处理复杂代码结构带来的调试困难。
常用场景
经典使用场景
在计算机科学领域,尤其是程序语言与软件工程研究中,单元测试的自动生成对于代码调试具有重要意义。HE+Fix, MBPP+Fix, MBPP+Fix (Hard)数据集在此背景下应运而生,其经典使用场景主要在于训练模型以自动生成单元测试,并通过这些测试来辅助自动化代码调试过程。
解决学术问题
该数据集解决了自动化调试中的一个核心问题,即如何高效地生成针对特定代码功能的单元测试。这对于提升软件开发效率、降低人工调试成本以及提高代码质量具有显著意义。通过这些数据集,研究者能够训练模型识别代码中的错误,并提出相应的测试用例,从而在学术研究中推进自动化调试技术的发展。
衍生相关工作
该数据集衍生出的相关工作包括但不限于对单元测试生成方法的改进、调试流程的优化,以及结合大型语言模型进行更深入的代码理解和错误检测。这些研究进一步拓宽了自动化调试技术的应用范围,为软件工程领域带来了新的研究视角和技术路径。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作