paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Semantic Debugging

语义调试
FSE Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering2023匹配度 4/10 · 该论文属于自动化调试与程序分析,使用逻辑属性与约束求解推断失败原因,与形式化/程序分析有泛泛关联;但未涉及 LLM/Agent、ML 系统静态分析、浮点程序分析或贝叶斯程序分析,与用户当前核心研究方向匹配度较低。引用 14 inbox
Martin Eberlein, Marius Smytzek, Dominic Steinhöfel, Lars Grunske, Andreas Zeller
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出自动推断程序失败原因与条件的语义调试技术,并实现 AVICENNA 原型。

程序失败原因往往难以自动解释,尤其当失败取决于复杂输入条件时。本文提出一种通用的语义调试技术:将失败原因表示为输入元素上的逻辑性质,例如“int() > len() 时程序失败”;通过现代性质推断方法从通过和失败的输入中学习候选诊断,并借助约束求解器生成支持性测试用例来验证与精化假设。AVICENNA 原型能够为复杂失败条件生成简洁且富有表达力的诊断,其质量接近人类专家,并显著优于现有最先进方法。

问题
如何自动确定程序失败的原因与触发条件,尤其是复杂输入条件导致的失败。
方法
从通过和失败输入中推断输入元素上的逻辑性质,并用约束求解器生成测试用例来验证、精化候选诊断。
评估
实现 AVICENNA 原型,在复杂失败条件下生成简洁诊断,与人类专家诊断接近,并显著优于现有方法。
原文摘要(Abstract)

Why does my program fail? We present a novel and general technique to automatically determine failure causes and conditions, using logical properties over input elements: “The program fails if and only if int() > len() holds—that is, the given is larger than the length.” Our AVICENNA prototype uses modern techniques for inferring properties of passing and failing inputs and validating and refining hypotheses by having a constraint solver generate supporting test cases to obtain such diagnoses. As a result, AVICENNA produces crisp and expressive diagnoses even for complex failure conditions, considerably improving over the state of the art with diagnoses close to those of human experts.

链接与引用

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

BibTeX
@inproceedings{EberleinSSGZ23,
  title = {Semantic Debugging},
  author = {Martin Eberlein and Marius Smytzek and Dominic Steinhöfel and Lars Grunske and Andreas Zeller},
  booktitle = {FSE},
  year = {2023},
  doi = {10.1145/3611643.3616296}
}