paperbot · PL 论文追踪

全部论文 待读 收藏

P2 PraPR: Practical Program Repair via Bytecode Mutation

PraPR:基于字节码变异的实用程序修复
ASE 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE)2019匹配度 2/10 · 该论文研究基于JVM字节码变异的自动程序修复,属于软件工程/程序修复方向,与用户关注的静态分析、LLM/Agent、浮点程序分析及贝叶斯程序分析等核心方向无直接交叉。虽然涉及程序分析与工程实现,但既未使用LLM/Agent,也未聚焦用户列出的具体问题。引用 37 inbox
Ali Ghanbari, Lingming Zhang
crossref: 2026-09-12crossref: 2026-09-12

AI 速览

一句话:提出在JVM字节码层面进行变异修复的实用自动程序修复技术,快且跨语言适用。

自动程序修复(APR)旨在通过生成高质量补丁减轻调试负担,实用APR需兼顾可扩展性、适用性与补丁验证准确性。本文提出PraPR,一种在JVM字节码层面运作的实用APR技术,并讨论其设计决策。该方法基于简单的变异模板,直接在字节码上生成并验证补丁,从而避免源码级修复的局限。实验表明:(1) PraPR修复的缺陷数量超过当前最先进APR技术,且速度可快10倍以上;(2) 现有APR技术存在数据集过拟合问题,而基于模板的PraPR在不同数据集上表现更一致;(3) PraPR还能修复Kotlin等其他JVM语言的缺陷。PraPR已开源,被视为通向上述设计目标的可行基线。

问题
现有自动程序修复技术在可扩展性、适用性和补丁验证准确性上仍难以满足实用需求,且易受数据集过拟合影响。
方法
在JVM字节码层面实施基于模板的变异,直接生成并验证补丁,避免源码级修复的依赖与开销。
评估
在缺陷基准上实验,对比最先进APR技术的修复数量与耗时,并测试跨数据集一致性与对Kotlin等其他JVM语言的适用性。
原文摘要(Abstract)

Automated program repair (APR) is one of the recent advances in automated software engineering aiming for reducing the burden of debugging by suggesting high-quality patches that either directly fix the bugs, or help the programmers in the course of manual debugging. We believe scalability, applicability, and accurate patch validation are the main design objectives for a practical APR technique. In this paper, we present PraPR, our implementation of a practical APR technique that operates at the level of JVM bytecode. We discuss design decisions made in the development of PraPR, and argue that the technique is a viable baseline toward attaining aforementioned objectives. Our experimental results show that: (1) PraPR can fix more bugs than state-of-the-art APR techniques and can be over 10X faster, (2) state-of-the-art APR techniques suffer from dataset overfitting, while the simplistic template-based PraPR performs more consistently on different datasets, and (3) PraPR can fix bugs for other JVM languages, such as Kotlin. PraPR is publicly available at https://github.com/prapr/prapr.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot5190,
  title = {PraPR: Practical Program Repair via Bytecode Mutation},
  author = {Ali Ghanbari and Lingming Zhang},
  booktitle = {ASE},
  year = {2019},
  doi = {10.1109/ase.2019.00116}
}