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:
- 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.
- Usability study mode: the version that ran during the MTurk usability study. Usability study mode uses the naive variant.
- 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:
Preventing Data Errors with Continuous Testing by Kivanc Muslu, Yuriy Brun, and Alexandra Meliou, in Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA), 2015, pp. 373–384. doi: 10.1145/2771783.2771792
Data debugging with continuous testing by Kivanc Muslu, Yuriy Brun, and Alexandra Meliou, in Proceedings of the New Ideas Track at the 9th Joint Meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE), 2013, pp. 631–634. doi: 10.1145/2491411.2494580
This project is being developed by: