paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Abstracting failure-inducing inputs

抽象化引发失败的输入
ISSTA Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis2020匹配度 3/10 · 该论文属于软件测试与调试方向,利用输入文法将单个失败输入泛化为抽象失败输入,用于诊断和生成测试;它不涉及静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析,与用户画像的核心研究方向交集有限。引用 24 inbox
Rahul Gopinath, Alexander Kampmann, Nikolas Havrikov, Ezekiel O. Soremekun, Andreas Zeller
crossref: 2026-09-12

AI 速览

一句话:提出 DDSET,用输入文法将单个失败输入泛化为抽象失败输入,用于诊断失败条件并生成更多测试。

论文研究程序失败在何种输入条件下发生。给定一个引发失败的具体输入和输入文法,DDSET 通过系统化测试自动将该输入泛化为抽象失败输入:其中既包含具体终结符,也包含来自文法的抽象非终结符,例如将 ((4)) 泛化为 (( )),表示任意双重括号表达式。这种抽象失败输入有两种用途:一是作为调试诊断,刻画失败发生的条件;二是作为生成器,产生更多引发失败的测试,以帮助设计并验证修复方案。作者在 JavaScript、Clojure、Lua 和 UNIX 命令行工具的真实缺陷上进行评估,结果表明 DDSET 的抽象失败输入能提供切中要点的诊断,并精确生成后续失败输入。

问题
如何从单个引发失败的输入出发,自动概括失败发生的输入条件,并生成更多相关失败测试。
方法
DDSET 利用输入文法与系统化测试,将具体失败输入泛化为同时包含终结符和非终结符的抽象失败输入。
评估
在 JavaScript、Clojure、Lua 以及 UNIX 命令行工具的真实缺陷上评估,检验诊断质量与额外失败输入的生成效果。
原文摘要(Abstract)

A program fails. Under which circumstances does the failure occur? Starting with a single failure-inducing input ("The input ((4)) fails") and an input grammar, the DDSET algorithm uses systematic tests to automatically generalize the input to an abstract failure-inducing input that contains both (concrete) terminal symbols and (abstract) nonterminal symbols from the grammar—for instance, "(( ))", which represents any expression in double parentheses. Such an abstract failure-inducing input can be used (1) as a debugging diagnostic, characterizing the circumstances under which a failure occurs ("The error occurs whenever an expression is enclosed in double parentheses"); (2) as a producer of additional failure-inducing tests to help design and validate fixes and repair candidates ("The inputs ((1)), ((3 * 4)), and many more also fail"). In its evaluation on real-world bugs in JavaScript, Clojure, Lua, and UNIX command line utilities, DDSET’s abstract failure-inducing inputs provided to-the-point diagnostics, and precise producers for further failure inducing inputs.

链接与引用

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

BibTeX
@inproceedings{paperbot6051,
  title = {Abstracting failure-inducing inputs},
  author = {Rahul Gopinath and Alexander Kampmann and Nikolas Havrikov and Ezekiel O. Soremekun and Andreas Zeller},
  booktitle = {ISSTA},
  year = {2020},
  doi = {10.1145/3395363.3397349}
}