Lune

FSE2020Top-tier venue

When does my program do this? learning circumstances of software behavior

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

2020Year
29Citations
6Top-tier citations

Abstract

A program fails. Under which circumstances does the failure occur? Our Alhazen approach starts with a run that exhibits a particular behavior and automatically determines input features associated with the behavior in question: (1) We use a grammar to parse the input into individual elements. (2) We use a decision tree learner to observe and learn which input elements are associated with the behavior in question. (3) We use the grammar to generate additional inputs to further strengthen or refute hypotheses as learned associations. (4) By repeating steps 2 and 3, we obtain a theory that explains and predicts the given behavior. In our evaluation using inputs for find, grep, NetHack, and a JavaScript transpiler, the theories produced by Alhazen predict and produce failures with high accuracy and allow developers to focus on a small set of input features: łgrep fails whenever the --fixed-strings option is used in conjunction with an empty search string. ž

• Software and its engineering → Software testing and debugging; • Theory of computation → Grammars and context-free languages; Oracles and decision trees; 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 4d277826-6a7a-4fb5-b397-4250df48ffee

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