HE+Fix, MBPP+Fix, MBPP+Fix (Hard)
收藏学习生成用于自动调试的单元测试
作者:Archiki Prasad,Elias Stengel-Eskin,Justin Chih-Yao Chen,Zaid Khan,Mohit 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} }




