Check'n'Crash: Combining static checking and testing

C Csallner, Y Smaragdakis - … of the 27th international conference on …, 2005 - dl.acm.org
Proceedings of the 27th international conference on Software engineering, 2005dl.acm.org
We present an automatic error-detection approach that combines static checking and
concrete test-case generation. Our approach consists of taking the abstract error conditions
inferred using theorem proving techniques by a static checker (ESC/Java), deriving specific
error conditions using a constraint solver, and producing concrete test cases (with the
JCrasher tool) that are executed to determine whether an error truly exists. The combined
technique has advantages over both static checking and automatic testing individually …
We present an automatic error-detection approach that combines static checking and concrete test-case generation. Our approach consists of taking the abstract error conditions inferred using theorem proving techniques by a static checker (ESC/Java), deriving specific error conditions using a constraint solver, and producing concrete test cases (with the JCrasher tool) that are executed to determine whether an error truly exists. The combined technique has advantages over both static checking and automatic testing individually. Compared to ESC/Java, we eliminate spurious warnings and improve the ease-of-comprehension of error reports through the production of Java counterexamples. Compared to JCrasher, we eliminate the blind search of the input space, thus reducing the testing time and increasing the test quality.
ACM Digital Library