Abstract
We present a symbolic model checking approach that allows verifying a unit of code, e.g., a single procedure or a collection of procedures that interact with each other. We allow temporal specifications that assert over both the program counters and the program variables. We decompose the verification into two parts: (1) a search that is based on the temporal behavior of the program counters, and (2) the formulation and refutation of a path condition, which inherits conditions constraining the program variables from the temporal specification. This verification approach is modular, as we do not require that all the involved procedures are provided. Furthermore, we do not request that the code is based on a finite domain. The presented approach can also be used for automating the generation of test cases for unit testing.
Similar content being viewed by others
Author information
Authors and Affiliations
Corresponding author
Additional information
A preliminary version of the paper, with the title Unit Checking: Symbolic Model Checking for a Unit of Code appears in the Lecture Notes in Computer Science volume 2772, Verification– Theory and Practice, celebrating Zohar Manna’s 64th birthday
This research was partially supported by US Army Research Office Grant number DAAAD19-01-1-0473
This research was partially supported by Subcontract UTA03-031 to The University of Warwick under University of Texas at Austin’s prime National Science Foundation Grant #CCR-0205483
Received February 2004
Revised September 2004 and April 2005
Accepted April 2005 by M. Leuschel and D. J. Cooke
Rights and permissions
About this article
Cite this article
Gunter, E., Peled, D. Model checking, testing and verification working together. Form Asp Comp 17, 201–221 (2005). https://doi.org/10.1007/s00165-005-0059-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-005-0059-8