Abstracting failure-inducing inputs
Rahul Gopinath, Alexander Kampmann, Nikolas Havrikov, Ezekiel O. Soremekun, Andreas Zeller
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 failureinducing input that contains both (concrete) terminal symbols and (abstract) nonterminal symbols from the grammarÐfor instance, ł((⟨expr⟩))ž, which represents any expression ⟨expr⟩ 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. CCS CONCEPTS • Software and its engineering → Software testing and debugging; • Theory of computation → Grammars and context-free languages; Active learning.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 3c65524d-607d-4a69-96e8-cec7c5f31f1bCited by top-tier papers6
- Testing of autonomous driving systems: where are we and where should we go?Guannan Lou, Yao Deng, Xi Zheng, Mengshi Zhang et al.FSE 2022 · 85 citations
- Gramatron: effective grammar-aware fuzzingPrashast Srivastava, Mathias PayerISSTA 2021 · 51 citations
- PPR: Pairwise Program ReductionMengxiao Zhang, Zhenyang Xu, Yongqiang Tian, Yu Jiang et al.FSE 2023 · 13 citations
- Semantic DebuggingMartin Eberlein, Marius Smytzek, Dominic Steinhöfel, Lars Grunske et al.FSE 2023 · 13 citations
- Human-in-the-loop oracle learning for semantic bugs in string processing programsCharaka Geethal Kapugama, Van-Thuan Pham, Aldeida Aleti, Marcel BöhmeISSTA 2022 · 10 citations
Builds on1
Related papers
- When does my program do this? learning circumstances of software behaviorAlexander Kampmann, Nikolas Havrikov, Ezekiel O. Soremekun, Andreas ZellerFSE 2020 · 29 citations
- Debugging inputsLukas Kirschner, Ezekiel O. Soremekun, Andreas ZellerICSE 2020 · 15 citations
- "Synthesizing input grammars": a replication studyBachir Bendrissou, Rahul Gopinath, Andreas ZellerPLDI 2022 · 8 citations
- Input invariantsDominic Steinhöfel, Andreas ZellerFSE 2022 · 47 citations
- Random Testing via Runtime Abstract InterpretationZain K Aamer, Benjamin C. PierceOOPSLA 2026 · 1 citation
