ENCORE: Ensemble Learning using Convolution Neural Machine Translation for Automatic Program Repair
University of Waterloo(滑铁卢大学);Purdue University(普渡大学)
针对传统生成-验证程序修复技术规则固化、适配语言有限的问题,提出基于卷积神经机器翻译集成学习的ENCORE方法,可跨多语言修复缺陷,在多个基准上修复效果优于现有技术。
2024-03-10 cs.LG cs.SE
Mining Bug Repositories for Multi-Fault Programs
针对 Defects4J 与 BugsInPy 多为单缺陷条目的局限,本文利用测试用例移植和故障位置转换构建保留原数据集特性的真实多故障程序数据集。
2024-04-10 cs.SE
CURE: Code-Aware Neural Machine Translation for Automatic Program Repair
Purdue University(普渡大学);University of Waterloo(滑铁卢大学)
自动程序修复(APR)是提高软件可靠性的关键.最近,神经机器翻译(NMT)技术已被用于自动修复软件错误。虽然这些方法很有前途,但有两个主要的局限性。它们的搜索空间通常不包含正确的修复,并且它们的搜索策略忽略了软件知识,例如严格的代码语法。由于这些限制,现有的基于NMT的技术表现不如最好的基于模板的方法。我们提出了CURE,一种新的基于NMT的APR技术,具有三个主要的新颖性。首先,CURE在大型软件代码库上预训练程序设计语言(PL)模型,以便在APR任务之前学习类似于开发人员的源代码。其次,CURE设计了一个新的代码感知搜索策略,通过关注可编译的补丁和长度接近错误代码的补丁来找到更多正确的修复。最后,CURE使用子字标记化技术来生成包含更多正确修复的较小搜索空间。我们对两个广泛使用的基准测试的评估表明,CURE正确地修复了57个Defects4J错误和26个菜错误,在这两个基准测试上优于所有现有的APR技术。
2021-09-02 cs.AI cs.LG cs.SE
Identifying Implementation Bugs in Machine Learning based Image Classifiers using Metamorphic Testing
Accenture Technology Labs(埃森哲技术实验室)
我们最近见证了机器学习(ML)在实际应用中的巨大成功。计算机视觉、语音识别和语言翻译都达到了接近人类水平的性能。我们预计,在不久的将来,大多数商业应用程序都将具有某种形式的ML。然而,测试这样的应用程序是非常具有挑战性的,如果我们遵循今天的方法,将是非常昂贵的。在这项工作中,我们提出了在测试基于ML的应用程序的挑战。然后,我们提出了我们的解决方案的方法,基于变形测试的概念,其目的是识别基于ML的图像分类器中的实现错误。我们已经为基于支持向量机的应用程序和基于深度学习的应用程序开发了变形关系。经验验证表明,我们的方法能够捕获ML应用程序中71%的实现错误。
2018-08-16 cs.LG cs.SE
MUFIN: Improving Neural Repair Models with Back-Translation
本文提出使用反向翻译技术并设计MUFIN框架,通过专门的代码评估器选择高质量样本,在自监督学习下自动生成超50万对错误/修复数据,有效提升了神经程序修复模型的训练效果。
2023-04-05 cs.SE
CircInspect: Integrating Visual Circuit Analysis, Abstraction, and Real-Time Development in Quantum Debugging
本文提出 CircInspect,一款面向 Python 与 PennyLane 量子程序的交互式调试工具,通过断点、实时开发、线路可视化和信息抽象帮助开发者理解并排查量子软件。
2025-09-04 cs.SE
Assessing the Latent Automated Program Repair Capabilities of Large Language Models using Round-Trip Translation
Simula Research Laboratory(Simula研究实验室)
本研究探索利用往返翻译(RTT)通过大语言模型进行自动化程序修复,发现该方法能生成合理补丁,并可作为APR框架的补充组件。
2025-10-15 cs.CL cs.LG cs.SE
HLSDebugger: Identification and Correction of Logic Bugs in HLS Code with LLM Solutions
Hong Kong University of Science and Technology(香港科学与技术大学)
针对HLS代码调试难度大、训练数据稀缺等问题,本研究提出HLSDebugger方案,发布30万条标注数据集,采用单编码器-解码器模型完成多任务调试,性能显著优于先进LLM。
2025-07-29 cs.AI cs.SE
An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translation
代码库中有数百万个修复了许多bug的开源项目。可以利用软件开发历史的这种扩散来学习如何修复常见的编程错误。为了探索这种潜力,我们进行了一项实证研究,以评估使用神经机器翻译技术学习错误修复补丁的可行性。首先,我们从GitHub上托管的项目的更改历史中挖掘数百万个错误修复,以提取此类错误修复的有意义的示例。接着,我们抽象出错误代码和相应的固定代码,并使用它们来训练一个编码器-解码器模型,该模型能够将错误代码翻译成其固定版本。在我们的实证调查中,我们发现这样的模型能够在野外修复数千种独特的错误方法。总的来说,这个模型能够在9-50%的情况下预测开发人员生成的固定补丁,这取决于我们允许它生成的候选补丁的数量。此外,该模型能够模拟各种不同的抽象树操作,并在一瞬间生成候选补丁。
2019-05-21 cs.SE
SN4KE: Practical Mutation Testing at Binary Level
变异分析是一种有效的技术,以评估测试套件的充分性,揭示不可预见的软件错误。传统的源或IR级突变分析不适用于仅以二进制格式提供的软件。本文提出了一个实用的二进制变异分析,通过二进制重写,随着丰富的变异算子,以代表更现实的错误。我们实现了我们的方法,使用两个国家的最先进的二进制重写工具,并评估其有效性和可扩展性,通过将它们应用到SPEC CPU基准测试。我们的分析表明,更丰富的突变算子有助于产生更多样化的突变体,这与以前的作品相比,导致更高的突变得分的测试线束。我们还得出结论,realizable反汇编重写产生更好的可扩展性相比,提升到一个中间表示,并执行一个完整的翻译。
2021-02-13 cs.CR cs.SE
Studying the explanations for the automated prediction of bug and non-bug issues using LIME and SHAP
TU Clausthal(克劳斯塔尔工业大学)
上下文:在问题跟踪器中识别报告的问题中的错误对于问题的分类至关重要。机器学习模型已经显示出关于自动化问题类型预测的性能的有希望的结果。然而,除了我们的假设之外,我们对这些模型如何识别bug的了解非常有限。LIME和SHAP是解释分类器预测的常用技术。目的:我们想了解机器学习模型是否为分类提供了合理的解释,并与我们对模型应该学习什么的假设保持一致。我们还想知道预测的质量是否与解释的质量相关。方法:我们进行了一项研究,根据LIME和SHAP解释问题类型预测模型结果的质量对其进行评级。为此,我们评价解释本身的质量,即,如果它们符合我们的期望,如果它们帮助我们理解底层的机器学习模型。
2022-09-15 cs.LG cs.SE
CODIT: Code Editing with Tree-Based Neural Models
开发人员编辑日常代码的方式往往是重复的,通常使用现有的代码元素。许多研究人员试图通过从应用于有限范围的特定更改模板中学习来自动化重复的代码更改。深度神经网络的进步和大量开源进化数据的可用性为自动从野外学习这些模板提供了可能。然而,基于深度神经网络的代码更改和代码建模一般会引入一些需要研究界特别关注的特定问题。例如,与自然语言相比,源代码词汇表可以大得多。此外,代码中好的变化不会破坏其语法结构。因此,部署最先进的神经网络模型而不使方法适应源代码域产生次优结果。为此,我们提出了一种新的基于树的神经网络系统来模拟源代码的变化,并从野外学习代码变化模式。具体来说,我们提出了一个基于树的神经机器翻译模型来学习代码变化的概率分布。我们实现了我们的模型与变化的建议引擎,CODIT,训练模型与超过24k的现实世界的变化,并评估它的5k补丁。我们的评估表明,有效的CODIT学习和建议补丁。CODIT还可以从bug修复补丁中学习特定的bug修复模式,并可以修复Defects4J中80个bug中的25个bug。
2020-08-25 cs.SE
Patching as Translation: the Data and the Metaphor
Columbia University(哥伦比亚大学);University of California, Davis(加利福尼亚大学戴维斯分校)
来自其他领域的机器学习模型,如计算语言学,已经被移植到软件工程任务中,通常非常成功。然而,一个移植模型在特定任务上的初步成功并不一定意味着它非常适合该任务。在这项工作中,我们研究了这种现象的一个常见的例子:“软件修补就像语言翻译”的自负。我们的经验表明,序列到序列模型和翻译模型之间有微妙的,但关键的区别:虽然程序修复大大受益于前者,一般的建模架构,它实际上受到设计决策内置到后者,无论是在翻译的准确性和多样性。鉴于这些发现,我们展示了如何更原则的方法来模型设计,基于我们的实证研究结果和软件开发的一般知识,可以导致更好的解决方案。我们的研究结果也提供了强有力的支持,最近的趋势,合成编辑的代码有条件的错误的上下文,以修复错误。我们自己实现这样的模型作为“概念验证”工具,并根据经验证实,它们的行为在根本上不同的,更有效的方式比研究的预防为基础的架构。总的来说,我们的研究结果证明了在软件工程中研究机器学习模型的复杂性的优点:这不仅可以帮助阐明可能被准确性提高所掩盖的潜在问题;它还可以帮助在这些模型上进行创新,以进一步提高最先进的水平。我们将在https://github.com/ARiSE-Lab/Patch-as-translation上公开发布我们的复制数据和材料。
2020-09-01 cs.LG cs.PL cs.SE
Automated Description Generation for Software Patches
本文提出PATCHEXPLAINER,将软件补丁描述生成建模为机器翻译任务,通过显式表示关键元素并结合描述相似性进行训练,在真实数据集上显著优于现有方法。
2024-07-26 cs.SE
Evaluating LLM-Based Regression Test Generation
MPI-SP(Max Planck Institute for Software Process Engineering);University of California at Los Angeles(加州大学洛杉矶分校);University of Padua(帕多瓦大学)
研究利用大语言模型为特定程序即时生成回归测试,将其作为机器翻译任务,通过对多个项目测试,反馈导向的零样本原型Cleverest表现良好,还探讨了提交消息对其效果的影响。
2026-07-07 cs.AI cs.SE
AlphaTrans: A Neuro-Symbolic Compositional Approach for Repository-Level Code Translation and Validation
University of Illinois Urbana-Champaign(伊利诺伊大学厄巴纳-香槟分校);Indian Institute of Science(印度科学研究所);Cornell University(康奈尔大学);IBM Research(IBM研究)
AlphaTrans是一种神经符号组合方法,通过程序分解和逆调用顺序翻译,结合多级验证,实现仓库级代码翻译,在真实项目中取得高语法正确率和功能验证率。
2025-06-19 cs.LG cs.SE
On Learning Meaningful Code Changes via Neural Machine Translation
College of William and Mary(威廉与玛丽学院);Università della Svizzera italiana (USI)(瑞士意大利语大学)
近年来,应用于源代码的深度学习(DL)技术已经兴起。研究人员已经利用DL自动化了几项开发和维护任务,例如编写提交消息,生成评论和检测漏洞等。将深度学习应用于源代码的一个长久的梦想是使非平凡的编码活动自动化。虽然已经朝着这个方向采取了一些步骤(例如,学习如何修复错误),仍然明显缺乏关于DL可以学习和自动应用的代码更改类型的经验证据。我们的目标是通过定量和定性地研究神经机器翻译(NMT)模型的能力来学习如何在拉取请求期间自动应用开发人员实现的代码更改,从而迈出重要的第一步。在实现拉取请求中提供的更改之前和之后,我们在一组236 k对代码组件上对NMT模型进行了训练和实验。我们表明,当应用在一个足够狭窄的背景下(即,在Pull请求更改之前/之后的小型/中型方法对),NMT可以在高达36%的情况下自动复制开发人员在Pull请求期间实现的更改。此外,我们的定性分析表明,该模型能够学习和复制各种有意义的代码更改,特别是重构和错误修复活动。我们的研究结果铺平了道路,新的研究领域的DL代码,如自动学习和重构的应用。
2019-01-25 cs.CL cs.LG cs.SE
Explainable Software Defect Prediction: Are We There Yet?
解释软件缺陷预测模型的预测结果是一项具有挑战性和实用性的任务,它可以为开发人员提供有用的信息,以了解和修复预测的错误。为了解决这个问题,最近,Jiarpakdee等人提出使用{两种最先进的}模型不可知技术(即,LIME和BreakDown)来解释缺陷预测模型的预测结果。他们的实验表明,这些工具可以生成有希望的结果,生成的解释可以帮助开发人员理解预测结果。然而,事实上,LIME和BreakDown仅在单个软件缺陷预测模型设置上进行了检查,这使得人们对它们在具有各种设置的软件缺陷预测模型中的一致性和可靠性提出了质疑。在本文中,我们着手研究基于模型不可知技术的解释生成方法(即,LIME和BreakDown)对具有不同设置的软件缺陷预测模型的影响,例如,不同的数据采样技术、不同的机器学习分类器和不同的预测场景。具体来说,我们使用LIME和BreakDown来生成具有不同设置的软件缺陷预测模型下的相同实例的解释,然后检查实例的生成解释的一致性。在我们的实验中,我们重用了来自Jiarpakdee等人的相同缺陷数据。结果表明,对于相同的测试实例,在不同的软件缺陷预测设置下,LIME和BreakDown产生的解释不一致,这使得它们产生的解释不可靠。总的来说,通过这项研究,我们呼吁在可解释的软件缺陷预测方面进行更多的研究,以实现一致和可靠的解释。
2021-11-21 cs.SE
Neural Program Repair: Systems, Challenges and Solutions
自动程序修复(APR)旨在自动修复源代码中的错误。近年来,随着深度学习(Deep Learning,DL)领域的发展,神经程序修复(Neural Program Repair,NPR)研究兴起,它将APR描述为从错误代码到正确代码的翻译任务,并采用基于编码器-解码器架构的神经网络。与其他APR技术相比,NPR方法在适用性方面具有很大的优势,因为它们不需要任何规范(即,测试套件)。虽然非线性重构已经成为一个热门的研究方向,但目前还没有对这一领域的研究综述。为了帮助感兴趣的读者了解现有的NPR系统的架构,挑战和相应的解决方案,我们在本文中的最新研究进行了文献综述。首先介绍了该领域的背景知识。接下来,为了便于理解,我们将NPR过程分解为一系列模块,并详细说明每个模块上的各种设计选择。此外,我们确定了几个挑战,并讨论现有解决方案的效果。最后,我们总结并提出了一些有前途的研究方向。
2022-09-21 cs.NE cs.SE
FullStack-Agent: Enhancing Agentic Full-Stack Web Coding via Development-Oriented Testing and Repository Back-Translation
Multimedia Laboratory (MMLab), The Chinese University of Hong Kong(香港中文大学多媒体实验室);Shenzhen Loop Area Institute(深圳河套学院)
FullStack-Agent通过面向开发的测试和仓库反翻译提升全栈网页编码能力,其多代理框架和自我改进方法在多个测试用例中表现出色。
2026-02-03 cs.CL cs.CV cs.SE
Tea: Program Repair Using Neural Network Based on Program Information Attention Matrix
Microsoft Asia-Pacific Technology Company Ltd.(微软亚太科技有限公司);University of Chinese Academy of Sciences(中国科学院大学);Institute of Software, Chinese Academy of Sciences(中国科学院软件研究所)
机器学习(ML)驱动的自然语言处理(NLP)的进步为软件程序的自动错误修复指明了一个有希望的方向,因为修复有错误的程序可以转换为翻译任务。虽然软件程序包含比一维自然语言文档更丰富的信息,但使用ML驱动的NLP技术进行自动程序修复的开创性工作只考虑了有限的此类信息。我们假设,更全面的软件程序的信息,如果适当利用,可以提高ML驱动的NLP方法在修复软件程序的有效性。作为证明这一假设的第一步,我们提出了一个统一的表示来捕捉软件程序的语法,数据流和控制流方面,并设计了一种方法来使用这样的表示来指导Transformer模型从NLP更好地理解和修复错误的程序。我们的初步实验证实,更全面的软件程序使用的信息,更好的ML驱动的NLP技术可以执行在这些程序中修复错误。
2021-07-17 cs.AI cs.SE
A Survey of Learning-based Automated Program Repair
本文系统综述了基于深度学习的自动程序修复技术,梳理其工作流程、关键组件、数据集与评估方法,并给出未来研究指南。
2023-11-01 cs.SE
Granite Code Models: A Family of Open Foundation Models for Code Intelligence
IBM Research(IBM研究院)
本文提出 Granite Code 开源 decoder-only 代码模型家族,覆盖 3B 至 34B 参数与 116 种编程语言,在多类编码任务上达到开源 LLM 先进水平,并以 Apache 2.0 许可开放。
2024-05-07 cs.AI cs.CL cs.SE