[en] A program fails. Under which circumstances does the failure occur? Starting with a single failure-inducing input ("The input ((4)) fails") and an input grammar, the DDSET algorithm uses systematic tests to automatically generalize the input to an abstract failure-inducing input that contains both (concrete) terminal symbols and (abstract) nonterminal symbols from the grammar - for instance, "((⟨expr⟩))", which represents any expression ⟨expr⟩ in double parentheses. Such an abstract failure-inducing input can be used (1) as a debugging diagnostic, characterizing the circumstances under which a failure occurs ("The error occurs whenever an expression is enclosed in double parentheses"); (2) as a producer of additional failure-inducing tests to help design and validate fixes and repair candidates ("The inputs ((1)), ((3 * 4)), and many more also fail"). In its evaluation on real-world bugs in JavaScript, Clojure, Lua, and UNIX command line utilities, DDSET’s abstract failure-inducing inputs provided to-the-point diagnostics, and precise producers for further failure inducing inputs.
Disciplines :
Sciences informatiques
Auteur, co-auteur :
Gopinath, Rahul; CISPA Helmholtz Center for Information Security Saarbrücken, Germany
Kampmann, Alexander; CISPA Helmholtz Center for Information Security Saarbrücken, Germany
Havrikov, Nikolas; CISPA Helmholtz Center for Information Security Saarbrücken, Germany
SOREMEKUN, Ezekiel ; University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT) > SerVal
Zeller, Andreas; CISPA Helmholtz Center for Information Security Saarbrücken, Germany
Co-auteurs externes :
yes
Langue du document :
Anglais
Titre :
Abstracting Failure-Inducing Inputs
Date de publication/diffusion :
18 juillet 2020
Nom de la manifestation :
Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis
Date de la manifestation :
8 - 22 July 2020
Manifestation à portée :
International
Titre de l'ouvrage principal :
Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis