JTACO: Test Execution for Faster Bounded Verification

In bounded program verification a finite set of execution traces is exhaustively checked in order to find violations to a given specification (i.e. errors). SAT-based bounded verifiers rely on SAT-Solvers as their back-end decision procedure, accounting for most of the execution time due to their ex...

Full description

Bibliographic Details
Authors: Kampmann, Alexander, Galeotti, Juan Pablo, Zeller, Andreas
Format: article
Status:Published version
Publication Date:2014
Country:Argentina
Institution:Consejo Nacional de Investigaciones Científicas y Técnicas
Repository:CONICET Digital (CONICET)
Language:English
OAI Identifier:oai:ri.conicet.gov.ar:11336/41629
Online Access:http://hdl.handle.net/11336/41629
Access Level:Open access
Keyword:Taco
Bounded Verification
Testing
Sat-Solving
https://purl.org/becyt/ford/2.2
https://purl.org/becyt/ford/2
Description
Summary:In bounded program verification a finite set of execution traces is exhaustively checked in order to find violations to a given specification (i.e. errors). SAT-based bounded verifiers rely on SAT-Solvers as their back-end decision procedure, accounting for most of the execution time due to their exponential time complexity. In this paper we sketch a novel approach to improve SAT-based bounded verification. As modern SAT-Solvers work by augmenting partial assignments, the key idea is to translate some of these partial assignments into JUnit test cases during the SAT-Solving process. If the execution of the generated test cases succeeds in finding an error, the SAT-Solver is promptly stopped. We implemented our approach in JTACO, an extension to the TACO bounded verifier, and evaluate our prototype by verifying parameterized unit tests of several complex data structures.