Continuous Data Testing


Continuous Data Testing (CDT) is a java application that runs a set of database tests (SQL select queries) on a database and warns the administrator of the database if a query produces an unexpected result (a regression failure).

CDT has a few modes and several variations:

  1. Experiment mode: to evaluate performance results on a database (e.g., the TPC-H benchmark)
    • None: CDT does not run at all, used for baseline computations.
    • Naive: CDT runs continuously in the background without any optimizations.
    • Simple: CDT runs tests only when the data changes in the database.
    • Static: Simple + CDT only runs the tests that are affected by the data change.
    • Coerce: Static + CDT merges multiple tests that query different columns of the same data into a larger test that queries multiple columns.
    • Incremental: Coerce + CDT caches the results of previous test execution and incrementally computes the result of the next test results using this information, whenever possible.
  2. Usability study mode: the version that ran during the MTurk usability study. Usability study mode uses the naive variant.
  3. Normal mode: normal execution for deployment. Normal mode uses the full variant.


More information about the project and the implementation can be obtained from the following publications:


This project is being developed by:

  • Yuriy Brun, Assistant Professor, University of Massachusetts, Amherst.
  • Alexandra Meliou, Assistant Professor, University of Massachusetts, Amherst.
  • Kivanc Muslu, PhD Candidate, University of Washington.