Michael Marcozzi – A Relational Symbolic Execution Algorithm for Constraint-Based Testing of Database Programs

The idea of Michael’s paper is to adapt constraint-based testing to database testing. The normal approach is symbolic execution: expressing path dependencies between variables and subsequently expressing constraints on them. These can then be solved with a constraint-solver.

This strategy is generalized by Michael to databases, by treating databases as variables. But expressing dependencies between database states is hard, as there are many tables, with relations and integrity constraints (like primary keys) should hold for all states.

Therefore, the strategy was changed: every variable is now modeled as a relation and every statement is an operation on the relational variables. Now integrity constraints can also be expressed as relational constraints. This translation seems to work very well.

They implemented their approach and tested in on three different systems. Unfortunately, I did not find a preprint or implementation online.