[en] Automatic testing, although useful, is still quite ineffective against faults that do not cause crashes or uncaught exceptions. In the majority of the cases automatic tests do not include oracles, and only in some cases they incorporate assertions that encode the observed behavior instead of the intended behavior, that is if the application under test produces a wrong result, the synthesized assertions will encode wrong expectations that match the actual behavior of the application.
In this paper we present ZoomIn, a technique that extends the fault-revealing capability of test case generation techniques from crash-only faults to faults that require non-trivial oracles to be detected. ZoomIn exploits the knowledge encoded in the manual tests written by developers and the similarity between executions to automatically determine an extremely small set of suspicious assertions that are likely wrong and thus worth manual inspection.
Early empirical results show that ZoomIn has been able to detect 50% of the analyzed non-crashing faults in the Apache Commons Math library requiring the inspection of less than 1.5% of the assertions automatically generated by EvoSuite.
Centre de recherche :
Interdisciplinary Centre for Security, Reliability and Trust (SnT) > Software Verification and Validation Lab (SVV Lab)
Disciplines :
Sciences informatiques
Auteur, co-auteur :
PASTORE, Fabrizio ; University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT)
Mariani, Leonardo; Universita degli Studi di Milano - Bicocca > Department of Informatics Systems and COmmunication
Co-auteurs externes :
yes
Langue du document :
Anglais
Titre :
ZoomIn: Discovering Failures by Detecting Wrong Assertions
Date de publication/diffusion :
mai 2015
Nom de la manifestation :
37th International Conference on Software Engineering
Date de la manifestation :
from 16-05-2015 to 24-05-2015
Manifestation à portée :
International
Titre de l'ouvrage principal :
Proceedings of the 37th International Conference on Software Engineering (ICSE)