Lune

ISSTA2020Top-tier venue

Abstracting failure-inducing inputs

Rahul Gopinath, Alexander Kampmann, Nikolas Havrikov, Ezekiel O. Soremekun, Andreas Zeller

2020Year
22Citations
6Top-tier citations

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.

Questions to start from

Your agent calls

Luneget_paper_fulltext

Ask in Lune

Free to start. No credit card required.

lune papers fulltext 3c65524d-607d-4a69-96e8-cec7c5f31f1b

Cited by top-tier papers6

Ask how each one uses it

Builds on1

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines