
摘要
多年来,修复程序错误的问题一直受到广泛关注。构建高效代码修复工具的关键挑战在于,既要能够覆盖广泛的错误类型,同时又要保持较高的准确性。本文针对这一挑战,提出了一种基于学习的新系统——TFix。TFix直接作用于程序文本,将代码修复问题建模为一个文本到文本的任务。这一设计使其能够利用在自然语言上预训练的高性能Transformer模型,并通过GitHub提交记录中获取的大规模高质量数据集进行微调,从而生成代码修复方案。TFix不局限于特定编程语言或某一类缺陷,事实上,它在同时对52种由主流静态分析工具报告的错误类型进行微调的过程中,进一步提升了修复精度。在大规模JavaScript程序数据集上的评估表明,TFix具有实际有效性:在67%的案例中能够成功生成修复错误的代码,显著优于现有的基于学习的方法。