When does my program do this? learning circumstances of software behavior
Alexander Kampmann, Nikolas Havrikov, Ezekiel O. Soremekun, Andreas Zeller
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.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 4d277826-6a7a-4fb5-b397-4250df48ffeeCited by top-tier papers6
- Fairness-aware Configuration of Machine Learning LibrariesSaeid Tizpaz-Niari, Ashish Kumar, Gang Tan, Ashutosh TrivediICSE 2022 · 44 citations
- Test mimicry to assess the exploitability of library vulnerabilitiesHong Jin Kang, Truong Giang Nguyen, Bach Le, Corina S. Pasareanu et al.ISSTA 2022 · 22 citations
- Semantic DebuggingMartin Eberlein, Marius Smytzek, Dominic Steinhöfel, Lars Grunske et al.FSE 2023 · 13 citations
- Applying and Extending the Delta Debugging Algorithm for Elevator Dispatching Algorithms (Experience Paper)Pablo Valle, Aitor Arrieta, Maite ArratibelISSTA 2023 · 3 citations
- CoReX: Context-Aware Refinement-Based Slicing for Debugging Regression FailuresSahar Badihi, Julia RubinICSE 2026
Builds on1
Related papers
- Abstracting failure-inducing inputsRahul Gopinath, Alexander Kampmann, Nikolas Havrikov, Ezekiel O. Soremekun et al.ISSTA 2020 · 22 citations
- AURORA: Statistical Crash Analysis for Automated Root Cause ExplanationTim Blazytko, Moritz Schlögel, Cornelius Aschermann, Ali Abbasi et al.USENIX Security 2020
- ARBITRAR: User-Guided API Misuse DetectionZiyang Li, Aravind Machiry, Binghong Chen, Mayur Naik et al.S&P 2021 · 30 citations
- Supply-Chain Vulnerability Elimination via Active Learning and RegenerationNikos Vasilakis, Achilles Benetopoulos, Shivam Handa, Alizee Schoen et al.CCS 2021 · 22 citations
- Using Active Learning to Train Predictive Mutation Testing with Minimal DataMiklos BorsiASE 2025
