Why does my program fail? We present a novel and general technique to automatically determine failure causes and conditions, using logical properties over input elements: "The program fails if and only if int(⟨length⟩) > len(⟨payload⟩) holds - that is, the given ⟨length⟩ is larger than the ⟨payload⟩ length." Our AVICENNA prototype uses modern techniques for inferring properties of passing and failing inputs and validating and refining hypotheses by having a constraint solver generate supporting test cases to obtain such diagnoses. As a result, AVICENNA produces crisp and expressive diagnoses even for complex failure conditions, considerably improving over the state of the art with diagnoses close to those of human experts.
History
Preferred Citation
Martin Eberlein, Marius Smytzek, Dominic Steinhöfel, Lars Grunske, Andreas Zeller. Semantic Debugging. In: ESEC/FSE. 2023.
Primary Research Area
Threat Detection and Defenses
Name of Conference
European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE)
Legacy Posted Date
2023-08-29
Pages
12,0
Open Access Type
Unknown
BibTeX
@inproceedings{cispa_all_4022,
author = {Martin Eberlein AND Marius Smytzek AND Dominic Steinhöfel AND Lars Grunske AND Andreas Zeller},
title = {Semantic Debugging},
booktitle = {ESEC/FSE 2023},
year = {2023}
}