A Program Transformation for Converting Java Assertions into Control-flow Statements

We present a technique for checking the validity of Java assertions using an arbitrary automated test-case generator. Our framework transforms the program by introducing code that detects whether the assertion conditions are met by every direct and indirect method call within a certain depth level. Then, any automated test-case generator can be used to look for input examples that falsify the conditions. The program transformation ensures that the value obtained for these inputs represents a path of method calls that ends with a violation of some assertion. We show experiments with two different automatic test-case generators that demonstrate not just the applicability of our proposal but also that we can get a better coverage than the same test-case generators without our transformation.

Author(s): 
Caballero, Rafael
von Hof, Vincent
Montenegro, Manuel
Kuchen, Herbert
Year of Publication: 
2016
Type of Outlet: 
Name of Outlet: 
ERCIS Working Papers
Place of Outlet: 
Münster
Working Report Number: 
25