kirancodes.me
To Proof Maintenance & Beyond!

Semantic Debugging

Martin Eberlein, Marius Smytzek, Dominic Steinhöfel, Lars Grunske, Andreas Zeller

Abstract

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( ) > len( ) holds—that is, the given is larger than the 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.

BibTeX
@inproceedings{Eberlein-al:FSE23,
  author    = {Martin Eberlein and
               Marius Smytzek and
               Dominic Steinh{\"{o}}fel and
               Lars Grunske and
               Andreas Zeller},
  title     = {Semantic Debugging},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {438--449},
  publisher = {{ACM}},
  year      = {2023},
}

Related papers