SCPatcher: Automated Smart Contract Code Repair via Retrieval-Augmented Generation and Knowledge Graph
Hainan University(海南大学)
本文提出SCPatcher框架,结合检索增强生成与知识图谱实现智能合约漏洞自动修复,通过构建5000个验证过的以太坊合约知识图谱,提升大语言模型推理能力,实现高修复率和编译通过率。
2026-04-01 cs.SE
CI-Repair-Bench: A Repository-Aware Benchmark for Automated Patch Validation via CI Workflows
Software Performance, Analysis, and Reliability (SPEAR) Lab, Concordia University(康科迪亚大学软件性能、分析与可靠性实验室)
CI-Repair-Bench通过真实GitHub Actions执行构建,提供仓库级程序修复基准,包含567个CI失败实例,细粒度评估12种CI错误类型,揭示自动化修复在局部和工具强制失败上效果最佳,但环境依赖等问题仍具挑战。
2026-04-29 cs.SE
On The Effectiveness of Dynamic Reduction Techniques in Automated Program Repair
针对自动化程序修复处理大规模工业级缺陷程序耗时耗资源的问题,提出集成ORBS观测切片的修复框架,通过程序约简优化修复全流程,在Defects4J数据集上实现性能提升且不降低修复质量。
2024-06-23 cs.SE
E-APR: Mapping the Effectiveness of Automated Program Repair
自动程序修复(APR)是一个快速发展的领域,许多新技术正在开发,以解决最具挑战性的软件工程问题之一。APR技术已经显示出有希望的结果,给了我们希望,有一天软件可以自我修复。本文主要研究APR技术的客观性能评估问题。我们介绍了一种新的方法,解释自动程序修复(E-APR),它确定的缺陷程序,解释为什么一个特定的实例是很难的APR技术的功能。E-APR用于检查大多数研究人员使用的错误程序的多样性和质量,并分析现有APR技术的优点和缺点。E-APR可视化了有缺陷程序的实例空间,每个有缺陷的程序都表示为空间中的一个点。实例空间的构造,以揭示领域的困难和容易的bug程序,并使APR技术的优点和缺点被确定。
2021-06-08 cs.SE
ASAP-Repair: API-Specific Automated Program Repair Based on API Usage Graphs
本文提出 ASAP-Repair 技术,利用最先进检测器的 API 使用模板,基于 API 使用图 (AUGs) 自动修复 API 误用,并验证了其在成熟数据集上的适用性及未来挑战。
2024-02-12 cs.SE
MintHint: Automated Synthesis of Repair Hints
能够自动修复程序是一项极具挑战性的任务。在本文中,我们提出了MintHint,一种新的技术,程序修复,是从今天的大多数方法出发。MintHint没有尝试完全自动化程序修复,这通常是一个无法实现的目标,而是执行统计相关性分析,以识别修复代码中可能出现的表达式,并使用基于模式匹配的合成,从这些表达式中生成修复提示。直觉上,这些提示建议如何纠正错误的语句,并帮助开发人员找到完整的实际修复。MintHint可以解决各种常见的错误,包括不正确的,虚假的和丢失的表达式。我们提出了一个用户的研究表明,开发人员的生产力可以提高许多倍的使用MintHint生成的修复提示-相比,只有传统的故障定位信息。我们还将MintHint应用于一个广泛使用的Unix实用程序的几个故障,以进一步评估该方法的有效性。我们的研究结果表明,即使在以下情况下,MintHint也表现良好:(1)搜索的修复空间不包含精确的修复,以及(2)从修复测试用例中获得的操作规范不完整甚至不精确。
2013-09-16 cs.SE
HEJ-Robust: A Robustness Benchmark for LLM-Based Automated Program Repair
Concordia University(康科迪亚大学)
本文提出HEJ-Robust基准,通过八种语义保持的代码转换生成1450个实例,评估五种微调LLM,在多种转换下模型性能下降超50%,揭示当前LLM修复模型缺乏对细微语法变化的鲁棒性。
2026-05-08 cs.SE
The Impact of Program Reduction on Automated Program Repair
本文提出利用程序切片缩减无关代码以提升自动程序修复的可扩展性,并在Defects4J上验证其可将TBar的中位修复时间从80分钟降至18分钟以内,同时保持修复质量。
2024-08-02 cs.SE
Program Repair: Automated vs. Manual
在过去的十年中,已经提出了各种自动程序修复(APR)技术来自动修复错误。虽然最近的研究在有效性和效率方面取得了重大进展,但在真实的调试场景中,APR技术在人工干预下的表现仍然不清楚。为了弥补这一差距,我们进行了广泛的研究,比较三个国家的最先进的APR工具与手动程序修复,并进一步调查是否协助APR工具(即,修复报告)可以改进手动程序修复。为此,我们招募了20名参与者进行对照实验,共产生了160个手动修复任务和问卷调查。实验结果表明:(1)人工修复程序有时会受到修复操作频率的影响;(2)APR工具在调试时间方面更有效,而人工修复程序往往会以更少的尝试生成正确的补丁;(3)APR工具可以进一步提高手工修复程序的错误修复率,但对补丁的正确性有负面影响;(4)参与者习惯于花费更多的时间来识别错误的补丁,但仍然容易被误导;(5)参与者对工具的修复性能持肯定态度,但对实际使用中的可用性普遍缺乏信心。此外,我们还提供了一些提高APR工具可用性的指南(例如,报告中的误导性信息和对反馈意见的观察)。
2022-03-10 cs.SE
Semantic Evolution over Populations for LLM-Guided Automated Program Repair
University of Texas at Dallas(达拉斯德州大学);FPT Software AI Center(FPT软件人工智能中心);Hanoi University of Science and Technology(河内科技大学)
本文提出EvolRepair框架,通过语义进化算法提升LLM引导的自动程序修复效果,解决修复假设多样性、语义相关修复家族识别等挑战。
2026-04-02 cs.SE
Applying CodeBERT for Automated Program Repair of Java Simple Bugs
软件调试和程序修复是软件工程中最耗时和劳动密集型的任务之一,自动化将使其受益匪浅。在本文中,我们提出了一种基于CodeBERT的新型自动程序修复方法,CodeBERT是一种基于变换器的神经架构,在大型源代码语料库上进行了预训练。我们在ManySStuBs 4J小型和大型数据集上微调我们的模型,以自动生成修复代码。结果表明,我们的技术在19-72%的情况下准确地预测了开发人员实现的固定代码,具体取决于数据集的类型,每个错误不到一秒。我们还观察到,我们的方法可以生成不同长度的修复(短和长),并可以修复不同类型的错误,即使在训练数据集中只存在这些类型的错误的几个实例。
2021-03-30 cs.SE
Automated Misconfiguration Repair of Configurable Cyber-Physical Systems with Search: an Industrial Case Study on Elevator Dispatching Algorithms
本文针对可配置信息物理系统错误配置修复难题,提出基于搜索的自动修复方法,并通过真实电梯调度算法工业案例验证其优于基线算法和领域专家手动修复。
2023-01-09 cs.SE
A Comprehensive Study of Code-removal Patches in Automated Program Repair
自动程序修复(APR)技术有望帮助降低调试成本。许多相关的APR技术遵循生成和验证的方法,即错误的程序迭代地修改不同的更改操作符,然后验证测试套件,直到一个合理的补丁生成。特别是,Kali是一种生成和验证技术,用于研究仅通过删除代码生成合理补丁的可能性。以前的研究表明,卡利确实成功地解决了几个错误。本文讨论了在自动程序修复中代码删除补丁的情况,调查的原因和场景,使他们的创建成为可能,以及与补丁的关系,由开发人员实现。我们的研究表明,代码删除补丁往往不足以修复错误,并提出了一个全面的分类代码删除补丁,提供的问题,可能会影响测试套件的证据,打开新的机会,研究人员在自动程序修复领域。
2021-12-15 cs.SE
Can Automated Program Repair Refine Fault Localization?
软件缺陷在现代软件系统中普遍存在,并且众所周知难以手动调试。因此,大量的研究工作一直致力于自动化软件调试,包括自动故障定位和程序修复。然而,现有的故障定位技术通常是无效的,即使是最先进的程序修复技术,也只能修复一小部分真实世界的错误。虽然故障定位和程序修复是内在联系的,但我们观察到,在文献中,它们唯一的联系是程序修复技术通常使用现成的故障定位技术(例如,Ochiai)来确定用于修补的潜在候选语句/元素。在这项工作中,我们探索他们在另一个方向的联系,即,程序修复是否反过来有助于故障定位?通过这种方式,我们不仅为更强大的故障定位开辟了一个新的维度,而且将程序修复的应用范围扩展到所有可能的错误(而不仅仅是可以直接自动修复的错误)。我们设计了ProFL,一种简单的方法,使用补丁执行结果(来自程序修复)作为故障定位的反馈信息。在广泛使用的Defects 4J基准上的实验结果表明,基本的ProFL已经可以在Top-1内定位395个研究错误中的161个,而最先进的基于频谱和突变的故障定位技术最多在Top-1内定位117个。我们还证明了ProFL在不同设置下的有效性。最后,我们表明,ProFL可以通过无监督和监督学习进一步提高最先进的故障定位。
2019-10-03 cs.SE
There are More Fish in the Sea: Automated Vulnerability Repair via Binary Templates
针对现有源代码层面漏洞修复技术的局限性,本文提出基于模板的Java二进制自动化漏洞修复方法TemVUR,通过收集并实现修复模板,在Vul4J和ManyVuls4J数据集上展现出显著的修复效果与通用性。
2024-11-27 cs.SE
DroidBugs: An Android Benchmark for Automated Program Repair
自动程序修复是一个新兴的研究领域。针对不同的程序设计语言和平台,已经提出了许多APR技术,并在几个基准上进行了评估。然而,据我们所知,目前还没有一个基于移动项目的定义良好的基准,因此,利用APR方法进行移动开发存在差距。因此,关于全球Android应用程序的数量,我们介绍了DroidBugs,这是一个基于对360个Android开放项目的分析的介绍性基准,每个项目的下载量都超过5,000次。从五个应用程序中,DroidBugs包含13个单一的bug,这些bug根据暴露它们的测试类型进行分类。通过使用一个名为Astor 4Android的APR工具和两个常见的故障定位策略,我们观察到发现和修复移动错误是多么具有挑战性。
2018-10-12 cs.SE
Energy Consumption of Automated Program Repair
本文首次结合自动化程序修复与绿色软件研究,测算10款传统Java修复工具及10个微调大语言模型在Defects4J数据集上的修复能耗,发现能耗与修复准确率间存在权衡关系。
2024-02-05 cs.SE
Attention Please: Consider Mockito when Evaluating Newly Proposed Automated Program Repair Techniques
自动程序修复(Automated program repair,APR)技术近年来引起了广泛的关注。与此同时,许多基准测试已经建立了评估APR技术的性能,其中Defects 4J是使用最广泛的基准测试之一。然而,在Mockito,一个项目中的缺陷增强后的版本的Defects 4J,没有得到太多的关注,最近的研究。在本文中,我们的目的是调查评估APR技术时考虑Mockito错误的必要性。我们的研究结果表明:1)与其他项目的bug相比,Mockito bug的修复并不复杂; 2)与修复Mockito bug所需的模式相比,最先进的工具修复的bug共享相同的修复模式;但是,在此情况下,3)最先进的工具在Mockito错误上表现不佳(Nopol只能正确修复一个bug,而SimFix和CapGen无法修复Mockito中的任何bug,即使所有bug位置都已暴露)。从这些结果中,我们得出结论,现有的APR技术可能是过拟合的评估科目,我们应该考虑Mockito,甚至更多的错误,从其他项目,当评估新提出的APR技术。我们进一步找出了一个独特的修复行动所需的修复Mockito错误命名为外部包添加。从与源代码相关联的测试代码中恢复外部包对于扩大搜索空间是可行的,并且该动作可以用现有的修复动作来增强以推进现有技术。
2019-01-08 cs.SE
Self-Boosted Automated Program Repair
程序修复是每个软件系统生命周期中不可或缺的一部分,但可能极具挑战性。到目前为止,研究人员已经提出了各种自动程序修复(APR)技术,以减少手工调试的努力。然而,给定一个真实世界的bug程序,一个典型的APR技术通常会产生大量的补丁,其中每个补丁都需要对原始测试套件进行验证,这会产生极高的计算成本。尽管现有的APR技术已经利用各种静态和/或动态信息来更快地找到期望的补丁,但是它们仍然相当昂贵。在最近的工作中,研究人员提出了统一调试,以利用APR期间的补丁执行信息来帮助提升故障定位;这样,APR技术的应用范围可以扩展到所有可能的错误,例如,APR期间的补丁执行信息可以帮助手动修复不能自动修复的错误。受统一调试的启发,这项工作提出了SeAPR(自增强自动程序修复),第一个技术,利用早期的补丁执行信息在APR期间,以帮助提高自动修复本身的飞行。我们的基本直觉是,补丁类似于早期的高质量/低质量的补丁应该被提升/降级,以加快检测所需的补丁。这项对12个最先进的APR系统的实验研究表明,总的来说,SeAPR可以大大减少补丁执行的数量,而开销可以忽略不计。我们的研究还调查了各种配置对SeAPR的影响。最后,我们的研究表明,SeAPR甚至可以利用来自同一错误程序的其他APR工具的补丁执行信息来进一步提高APR。
2021-04-09 cs.SE
On the Efficiency of Test Suite based Program Repair: A Systematic Assessment of 16 Automated Repair Systems for Java Programs
基于测试的自动程序修复是近十年来软件工程领域的一个研究热点。确实已经提出了许多方法,这些方法利用测试套件作为对程序规范的弱但可负担的近似。尽管文献经常在可以修复的基准测试错误的数量上创造新的记录,但一些研究越来越多地提出了对最先进方法的局限性和偏见的担忧。例如,生成的补丁的正确性已在一些研究中受到质疑,而其他研究人员指出,评估方案可能会误导故障定位结果的处理。然而,有很少的工作解决补丁生成的效率,关于程序修复的实用性。在本文中,我们填补了这一空白,在文献中,通过提供一个广泛的审查测试套件的程序修复的效率。我们的目标是评估生成的补丁候选者的数量,因为这些信息与(1)有效地遍历搜索空间以选择有意义的修复尝试的策略相关,(2)最小化识别合理补丁的测试工作的策略,(3)以及优先生成正确补丁的策略。为此,我们进行了大规模的实证研究的效率,在数量上产生的补丁候选人的16个开源修复工具的Java程序。在相同的故障定位配置下仔细地进行实验以限制偏差。
2020-08-03 cs.SE
Specification Vibing for Automated Program Repair
The University of Manchester(曼彻斯特大学);Mohamed bin Zayed University of Artificial Intelligence(穆罕默德·本·扎耶德人工智能大学)
VibeRepair通过行为规范修复替代传统代码编辑,提升自动化程序修复的准确性和泛化能力。
2026-02-09 cs.SE
Automated Repair of C Programs Using Large Language Models
本研究提出整合基于频谱的故障定位、运行时反馈与思维链提示的C程序自动修复框架,结合统计程序分析与LLM推理,在Codeflaws基准上实现44.93%修复准确率,优于现有先进APR基线。
2025-09-02 cs.SE
RelRepair: Enhancing Automated Program Repair by Retrieving Relevant Code
RelRepair通过检索项目内相关函数签名和代码片段并融入LLM提示,增强项目特定程序修复能力,在Defects4J V1.2修复101个错误,并在ManySStuBs4J上修复率提升至48.3%。
2025-09-20 cs.SE
Towards Practical and Useful Automated Program Repair for Debugging
针对现有自动化程序修复(APR)依赖测试用例、需重跑程序、修复复杂缺陷能力弱等实用性不足问题,提出交互式IDE修复系统PracAPR,通过无测试缺陷定位、结合大模型与策略的补丁生成、模拟轨迹验证实现无需测试和程序重跑的修复,推动APR实用化。
2024-07-12 cs.SE
ARJA: Automated Repair of Java Programs via Multi-Objective Genetic Programming
最近的实证研究表明,GenProg的性能并不令人满意,特别是对于Java。在本文中,我们提出了ARJA,一个新的GP为基础的修复方法自动修复的Java程序。具体来说,我们提出了一种新的低粒度补丁表示,适当的搜索子空间的可能错误的位置,操作类型和潜在的修复成分,使GP探索搜索空间更有效。基于这种新的表示,我们制定自动程序修复作为一个多目标的搜索问题,并使用NSGA-II寻找更简单的修复。为了减少计算量和搜索空间,我们引入了一个测试过滤过程,可以加快适应度评估的GP和三种类型的规则,可以应用到避免不必要的操作的代码。此外,我们还提出了一种类型匹配策略,可以通过利用现有语句的语法模式来创建新的潜在修复成分。我们进行了一个大规模的实证评估ARJA及其变种的种子错误和现实世界的错误相比,几个国家的最先进的修复方法。我们的研究结果验证了ARJA中所采用的搜索机制的有效性和效率,也显示了其优于其他方法。特别是,与jGenProg(GenProg for Java的实现)相比,完全遵循冗余假设的ARJA版本可以为两倍以上的bug数量(从27到59)生成测试套件足够的补丁,并为近四倍的数量(从5到18)生成正确的补丁,在Defects 4J中考虑了224个真实世界的bug。此外,ARJA是能够正确地修复几个真正的多位置的错误,很难被修复的大多数现有的修复方法。
2017-12-21 cs.SE
Bounded Exhaustive Search of Alloy Specification Repairs
声明性语言的日益普及及其难以调试的性质已经激发了对用于此类语言的适用的自动修复技术的需求。然而,尽管在命令式语言的程序修复方面取得了重大进展,但声明式语言的修复技术仍然缺乏。本文介绍了BeAFix,一种自动修复技术的错误模型写在合金,声明性语言的基础上一阶关系逻辑。BeAFix支持一种新颖的策略,用于对修复候选空间进行有界穷举但可扩展的探索,并对这些空间进行严格的合理修剪。此外,与Alloy中依赖于单元测试可用性的最先进的自动修复不同,BeAFix不需要测试,并且可以使用在正式声明语言中自然使用的断言。我们使用BeAFix修复其他研究人员收集的数千个真实世界故障模型的经验证实了它有效生成正确修复并超越最先进技术的能力。
2021-02-27 cs.SE
Exception-Driven Fault Localization for Automated Program Repair
自动程序修复(APR)技术通常利用基于频谱的故障定位(SBFL)来识别应当被修补的程序位置,使得APR技术的有效性取决于故障定位的有效性。事实上,结果表明,SBFL往往不本地化故障准确,阻碍了有效性的APR。在本文中,我们提出了EXCEPT,一种技术,解决本地化问题,专注于语义的失败,而不是执行语句和失败的测试之间的相关性,SBFL。我们专注于故障由于异常,我们利用他们的类型和来源定位和猜测故障。对Defects4J基准测试中的43个异常引发错误的实验表明,EXCEPT的性能优于Ochiai和ssFix。
2022-01-03 cs.SE
CausalRepair: Bridging the Causality Gap in Large Language Model-Based Automated Program Repair via Dual-Slicing
Peking University(北京大学);Shandong University(山东大学);Hong Kong Polytechnic University(香港理工大学)
CausalRepair是基于最小因果上下文的对话驱动型自动化程序修复框架,通过双重切片策略构建因果相关上下文,在Defects4J数据集上修复313个漏洞,性能优于现有方法且修复成本更低。
2026-08-12 cs.SE
Adversarial Patch Generation for Automated Program Repair
提出基于GAN的NEVERMORE模型,利用历史缺陷修复数据生成类人修复方案,在500个真实缺陷上21.2%匹配人类修复,并解决多个基线未修复的缺陷。
2023-09-03 cs.SE
Well Begun is Half Done: Location-Aware and Trace-Guided Iterative Automated Vulnerability Repair
Yangzhou University(扬州大学);Nanjing University of Posts and Telecommunications(南京邮电大学)
\sysname通过位置感知和跟踪引导的迭代方法,改进了漏洞修复的补丁生成质量与准确性。
2025-12-23 cs.SE
Automated Test Case Repair Using Language Models
针对测试用例维护成本高、损坏测试用例影响开发流程的问题,提出基于预训练代码语言模型的TaRGET方法,通过两步微调流程实现自动化修复,在TaRBench基准上达66.1%精确匹配准确率,并提供实用指南与扩展性分析。
2025-02-14 cs.SE
Adversarial Bug Reports as a Security Risk in Language Model-Based Automated Program Repair
Nicolaus Copernicus University(尼古拉·哥白尼大学);TU Wien(维也纳工业大学)
本文研究对抗性错误报告对基于大语言模型的自动程序修复系统的安全威胁,通过实证分析发现现有防御措施不足,并提出自动化生成对抗性错误报告的原型框架。
2026-01-26 cs.SE
Search-based Automated Program Repair of CPS Controllers Modeled in Simulink-Stateflow
针对 Simulink-Stateflow 控制器故障修复依赖人工且现有 APR 难以扩展的问题,提出结合全局与局部搜索、CPS 修复目标及变异算子的 FlowRepair,并在九个故障模型上验证其有效性。
2024-04-06 cs.SE
Automated Program Repair Based on REST API Specifications Using Large Language Models
针对REST API误用调试难的问题,研究提出dcFix方法,结合违规代码片段与API规范构建提示,借助LLM自动修复,实验显示其检测准确且性能优于无违规提示的基线方法。
2025-10-29 cs.SE
Automated Repair of Requirements for Cyber-Physical Systems in Simulink Requirements Tables
University of Toronto(多伦多大学);McMaster University(麦克马斯特大学);University of Bergamo(贝加莫大学)
提出一种利用系统执行数据修复信息物理系统需求以恢复需求与系统一致性的框架,并在六个真实案例中验证其有效性。
2026-06-02 cs.SE
Exploring Generalizable Automated Program Repair with Large Language Models
RheinMain University of Applied Sciences(莱茵美因应用科学大学);SonarSource;Ruhr University Bochum(波鸿鲁尔大学)
本文探讨了大型语言模型在自动程序修复中的应用,发现不同模型在不同语言上表现各异,需结合多个模型以提高修复效果,并指出故障定位的不完美会显著影响修复准确性。
2026-02-20 cs.SE
Automated Repair of Unrealisable LTL Specifications Guided by Model Counting
本文提出AuRUS方法,通过结合语法与语义相似性并利用模型计数启发式,自动修复不可实现的LTL规范,实验证明其能成功修复所有测试规范且可扩展性优于现有技术。
2023-04-14 cs.SE
SoK: Automated Vulnerability Repair: Methods, Tools, and Assessments
本SoK研究按漏洞分析、补丁生成、补丁验证三步体系化梳理自动化漏洞修复(AVR)方法,构建含144个漏洞的C/C++基准数据集Vul4C,评估了多款C/C++和Java的AVR工具,并指出未来研究方向。
2025-06-13 cs.SE
A large-scale study on human-cloned changes for automated program repair
对自动程序修复的研究表明,真正的错误可以自动修复。然而,这一任务涉及的若干挑战尚未得到充分解决。作为一个例子,考虑一个基于测试套件的修复工具在程序中执行一个更改,以修复一个失败的测试用例发现的错误,但是随后同一个或另一个测试用例失败了。这可能意味着更改是对错误的部分修复,或者另一个错误已经显现。但是,修复工具会放弃更改并可能执行其他修复尝试。人们可能会想,应用的更改是否也应该应用于程序中的其他位置,以便完全修复bug。在本文中,我们感兴趣的是调查开发人员在补丁中克隆的错误修复更改的程度。我们的目标是通过在相同或相似的背景下使用相同或相似的变化来调查多位置修复的需要。为此,我们分析了来自ManySStuBs4J数据集的3,049个多块补丁,ManySStuBs4J数据集是一个单语句错误修复更改的大型数据集。我们发现,68%的多块补丁包含至少一个更改克隆组。此外,这些补丁中的大多数(70%)是严格克隆的补丁,这些补丁完全由属于一个单一的更改克隆组的更改组成。最后,大多数严格克隆的补丁(89%)包含具有相同更改的更改克隆,独立于其上下文。我们的结论是,自动化的解决方案,用于创建由相同或相似的变化组成的补丁可以修复错误是有用的。
2021-04-06 cs.SE
RGFL: Reasoning Guided Fault Localization for Automated Program Repair Using Large Language Models
York University(约克大学)
RGFL通过引入分层推理模块和反事实分析,提升自动化程序修复中的文件和元素级故障定位精度,显著提高修复成功率。
2026-01-25 cs.SE
Reinforcement Learning for Mutation Operator Selection in Automated Program Repair
本文研究在基于启发式的程序修复中使用强化学习选择变异算子,通过在Defects4J基准上的大规模实验表明,该方法能生成更多通过测试的变体,但相比随机选择基线并未显著提升缺陷修复数量。
2024-05-06 cs.SE
Boosting Redundancy-based Automated Program Repair by Fine-grained Pattern Mining
针对基于冗余的自动化程序修复方法修复错误少、补丁错误多的问题,提出含两级模式挖掘的Repatt技术,在Defects4J基准上实验显示其能提升正确补丁数量、精度,结合排序策略后修复效果更优。
2025-08-26 cs.SE
RulER: Automated Rule-Based Semantic Error Localization and Repair for Code Translation
针对代码翻译中缺乏可靠参考导致错误定位与修复效果不佳的问题,提出基于规则的调试方法RulER,通过自动推导和动态组合翻译规则实现高效对齐,在定位率和修复率上显著优于现有方法。
2025-09-18 cs.SE
Towards an automated approach for bug fix pattern detection
缺陷数据集的特征是必不可少的,以支持自动程序修复工具的评估。在以前的工作中,我们手动研究了Defects4J数据集中近400个人类编写的补丁(bug修复),并使用属性(如修复模式)对其进行注释。然而,在不同的数据集中手动查找这些模式是繁琐和耗时的。为了解决这个问题,我们设计并实现了PPD,补丁中的修复模式检测器,它在抽象语法树级别执行源代码更改分析。在本文中,我们报告了PPD及其对Defects4J的评估,其中我们将自动检测的结果与以前的手动分析结果进行了比较。我们发现,PPD的总体精确度为91%,总体召回率为92%,我们得出结论,PPD有可能检测到尽可能多的修复模式,人类手动分析。
2018-07-30 cs.SE
StubCoder: Automated Generation and Repair of Stub Code for Mock Objects
针对单元测试中Mock对象桩代码编写与维护成本高、易出错的问题,本文提出StubCoder,利用进化算法依据测试运行时行为自动生成并修复桩代码,并在13个开源项目的59个测试用例上验证了有效性。
2023-07-27 cs.SE
Automated Repair of Cyber-Physical Systems
针对信息物理系统(CPS)人工调试成本高且自动化程序修复(APR)研究有限的问题,本项目提出结合基于频谱的故障定位(SBFL)、补丁生成与先进AI技术的可扩展APR方法,以解决故障定位、测试执行时间长及适应度函数局限等挑战。
2025-01-29 cs.SE
You Cannot Fix What You Cannot Find! An Investigation of Fault Localization Bias in Benchmarking Automated Program Repair Systems
适当的基准测试自动程序修复(APR)系统应有助于开发和采用的研究成果的从业者。为此,研究界必须通过可靠地比较最先进的工具,以更好地了解它们的优缺点,确保达到重要的里程碑。在这项工作中,我们确定和调查的故障定位(FL)在修复管道的步骤所造成的实际偏差。我们建议强调文献中使用的不同故障定位配置,以及它们在应用于Defects 4J基准测试时对APR系统的影响。然后,我们探讨的性能变化,可以通过“调整”FL步骤。最终,我们希望创造一个新的动力:(1)关于FL的APR实验程序的全面披露,(2)修复Defects 4J中错误的现实期望,以及(3)最先进的APR系统之间的可靠性能比较,以及我们彻底评估的kPAR修复工具的基线性能结果。我们的主要发现包括:(a)目前只有缺陷4J缺陷的一个子集可以通过常用的FL技术定位;(b)比较最先进的APR系统的当前实践(即,计算已修复错误的数量)由于FL配置的偏差而潜在地具有误导性;以及(c)APR作者没有适当地限定他们关于在APR系统中实现的不同调谐参数的性能成就。
2019-02-15 cs.SE
A Case Study of LLM for Automated Vulnerability Repair: Assessing Impact of Reasoning and Patch Validation Feedback
本研究提出VRpilot,一种基于推理和补丁验证反馈的LLM漏洞修复技术,在C和Java上分别比基线多生成14%和7.6%的正确补丁,并通过消融实验证实了这两个组件的关键作用。
2024-05-24 cs.SE
Automated and Context-Aware Repair of Color-Related Accessibility Issues for Android Apps
针对Android应用中文本与图像对比度等颜色无障碍问题,提出自动化上下文感知方法Iris,通过最优颜色求解和属性定位实现高成功率修复并保持设计风格一致。
2023-08-17 cs.SE
AdaTrans: Automated C to Rust Transformation via Error-Adaptive Repair
Wuhan University(武汉大学)
提出AdaTrans框架,通过策略驱动检索增强生成、错误分层转换策略和多阶段验证流水线,解决C到Rust自动转换中所有权和借用语义违反问题,在104个算法问题上实现95.51%编译通过率和81.09%解决率,不安全文件率仅1.19%。
2026-07-01 cs.SE
PracRepair: LLM-Empowered Automated Program Repair Inspired by Human-Like Debugging Practices
Zhejiang University(浙江大学);CSIRO’s Data61(澳大利亚联邦科学与工业研究组织数据61);Jiangxi Normal University(江西师范大学)
提出PracRepair框架,通过构建按需静态-动态上下文、进行问题驱动的故障诊断并迭代细化补丁,利用动态信息提升LLM在程序修复中的效果,在Defects4J和真实世界漏洞上取得最优性能。
2026-06-17 cs.SE
Empirical Evaluation of Large Language Models in Automated Program Repair
本文实证评估 CodeLlama 等四个开源 LLM 在多语言、多场景和多提示策略下的 APR 能力,基于六个基准的 60 余万补丁揭示模型规模、专业化与提示设计的影响。
2025-06-16 cs.SE
BUGSPHP: A dataset for Automated Program Repair in PHP
本文提出面向 PHP 的自动化程序修复基准数据集 BUGSPHP,包含超60万条训练提交和513条经人工验证并附带测试用例的测试提交,以填补 PHP 缺陷修复研究的数据空白。
2024-01-21 cs.SE
PathFix: Automated Program Repair with Expected Path
PathFix提出一种基于期望路径的自动化程序修复方法,通过路径敏感约束生成补丁,并集成大语言模型,在循环和递归等复杂结构上表现更优。
2025-10-16 cs.SE