paperbot · PL 论文追踪

全部论文 待读 收藏

P2 PAFL: Enhancing Fault Localizers by Leveraging Project-Specific Fault Patterns

PAFL:利用项目特定的故障模式增强故障定位器
OOPSLA 9(OOPSLA1)2025匹配度 3/10 · 该论文研究故障定位(fault localization),通过项目历史故障模式和 DSL 提升现有定位器,属于软件测试与调试领域。它与用户核心关注的静态分析/形式化验证、LLM/Agent 辅助程序分析、浮点程序分析或贝叶斯程序分析均无直接交集;DSL 与模式综合虽有 PL 形式化色彩,但主题和应用场景偏离主线。引用 0 inbox
Donguk Kim, Minseok Jeon, Doha Hwang, Hakjoo Oh
crossref: 2026-09-10

AI 速览

一句话:提出 PAFL,通过挖掘项目历史故障模式并设计故障模式描述语言,增强现有故障定位工具。

论文关注缺陷定位:现有方法普遍采用通用定位策略,忽略了每个软件项目各自特有的、反复出现的故障模式。作者提出项目感知故障定位(PAFL),在给定项目的一个含缺陷版本和基线定位器后,先从该项目过去的含缺陷版本中挖掘故障模式,再用这些模式修正基线定位器给出的语句可疑度分数。其核心包含两项新想法:一是设计了一种领域特定的故障模式描述语言,其语言实例称为 crossword,用于刻画项目特有的故障模式及其对可疑度分数的影响方式;二是提出一种从历史含缺陷版本中合成 crosswords 的算法。作者在 7 个基线故障定位器和 12 个真实 C/C++ 与 Python 项目上开展评估,结果显示 PAFL 能够有效、稳健且高效地提升基线定位技术的性能。

问题
现有故障定位技术使用统一的通用定位策略,无法利用各项目自身反复出现的、与项目挑战相关的故障模式,导致定位效果受限。
方法
PAFL 先从项目历史的含缺陷版本中挖掘故障模式,并设计领域特定语言(crossword)描述这些模式及其对可疑度的影响,再通过合成算法生成 crosswords,用于更新基线定位器计算出的语句可疑度分数。
评估
在 7 个基线故障定位器与 12 个真实 C/C++ 及 Python 项目上进行实验,验证 PAFL 能有效、稳健且高效地提升基线方法的定位性能。
原文摘要(Abstract)

We present PAFL, a new technique for enhancing existing fault localization methods by leveraging projectspecific fault patterns. We observed that each software project has its own challenges and suffers from recurring fault patterns associated with those challenges. However, existing fault localization techniques use a universal localization strategy without considering those repetitive faults. To address this limitation, our technique, called project-aware fault localization (PAFL), enables existing fault localizers to leverage project-specific fault patterns. Given a buggy version of a project and a baseline fault localizer, PAFL first mines the fault patterns from past buggy versions of the project. Then, it uses the mined fault patterns to update the suspiciousness scores of statements computed by the baseline fault localizer. To this end, we use two novel ideas. First, we design a domain-specific fault pattern-description language to represent various fault patterns. An instance, called crossword, in our language describes a project-specific fault pattern and how it affects the suspiciousness scores of statements. Second, we develop an algorithm that synthesizes crosswords (i.e., fault patterns) from past buggy versions of the project. Evaluation using seven baseline fault localizers and 12 real-world C/C++ and Python projects demonstrates that PAFL effectively, robustly, and efficiently improves the performance of the baseline fault localization techniques.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot3217,
  title = {PAFL: Enhancing Fault Localizers by Leveraging Project-Specific Fault Patterns},
  author = {Donguk Kim and Minseok Jeon and Doha Hwang and Hakjoo Oh},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {OOPSLA1},
  year = {2025},
  doi = {10.1145/3720526}
}