a symbolic approach towards constraint based software verification
Verification and validation (V&V) are two components of the software engineering process that are critical to achieve reliability that can account for up to 50% of the cost of software development. Numerous techniques ranging from formal proofs to testing methods exist to verify whether programs conform to their specifications. Recently, constraint programming techniques for V&V have emerged: they use the idea of proof by contradiction. They typically aim at proving that the code is inconsistent with the negation of the specification, which means that the software conforms to its specifications. Although the framework seems straightforward, the number of generated constraints can be high and the solving process tedious. In this work, we propose ideas for improvement based on symbolic manipulation of the constraints to be solved. Our approach differs from the current approach in its way to determine the compliance of the code with respect to its specification. Instead of using numeric solvers, we designed symbolic techniques to check compliance between the code and its specification. We analyzed how much practical the approach is if the program is correct and if the program is incorrect: can we make the verification process faster by applying our rules? CPBPV: a Constraint-Programming Framework for Bounded Program Verification, the work done by H. Collavizza, M. Rueher, and P. Hentenryck is the inspiration for our work. We established that our approach is feasible, and our experimental results prove that our proposed method is a promising addition to the existing framework to eliminate some of the basic challenges associated with constraint-based software verification.
Datta, Shubhra, "a symbolic approach towards constraint based software verification" (2011). ETD Collection for University of Texas, El Paso. AAI1503712.