Given a test database, the next step is to create test runs and execute the test runs on the database application. A test run is defined as a sequence of requests (that are always executed in the same order) and the expected responses of the application. It is assumed that the test database is in state D at the beginning of the execution of a test run. During the execution of a test run the state of the database may change due to the execution of the requests. For example, a test
that checks the reporting component of an order management application must always be executed against the same state of the test database in order to make sure that the report shows the same orders every time this test is executed. Controlling the state of the test database D is a challenging task, if many tests (possibly thousands) need to be executed and if some of these tests involve updates to the database (e.g., tests that test the insertion of a new order).