Humboldt-Universität zu Berlin - Faculty of Mathematics and Natural Sciences - Software Engineering

EMPEROR

Learning the Cause of Program Behavior (2022-2025)

 

All program behavior is triggered by some program input. Which parts of the input do trigger program behaviors, and how? In the EMPEROR project, we aim to automatically produce explanations for program behaviors — notably program failures. To this end, we (1) use grammars that separate inputs into individual elements; (2) learn statistical relations between features of input elements and program behavior; and (3) use systematic tests to strengthen or refute inferred associations, including internal features of the execution.

As a result, we obtain an approach that (1) automatically infers the (input) conditions under which a specific behavior occurs: “The program fails whenever the mail address contains a quote character”; (2) automatically (re)produces behaviors of interest via generated test inputs: “andr’e@foo.com”; and (3) refines and produces cause-effect relationships via generated test cases, involving execution features: “The input ’’foo’’’’’’@bar.com” causes a recursion depth of more than 128, leading to a crash”.

 

Team:

 

EMPEROR is funded by the German Research Foundation / Deutsche Forschungsgemeinschaft (DFG).