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

20Citations
Citations of this article
32Readers
Mendeley users who have this article in their library.

Abstract

A program fails. Under which circumstances does the failure occur? Our Alhazenapproach 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."

Cite

CITATION STYLE

APA

Kampmann, A., Havrikov, N., Soremekun, E. O., & Zeller, A. (2020). When does my program do this? Learning circumstances of software behavior. In ESEC/FSE 2020 - Proceedings of the 28th ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering (pp. 1228–1239). Association for Computing Machinery, Inc. https://doi.org/10.1145/3368089.3409687

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free