Testing is essential for database applications to function correctly and with acceptable performance when deployed. In practice, it is often necessary for vendors of database application software to test their software adequately before selling or integrating their software to the database owner. However, testing database applications is very costly. In particular, it is time-consuming and challenging to generate desirable database states, an important portion of test inputs for testing database applications. However, little research has been conducted to provide scalable, effective tool support for generating database states to achieve various testing objectives.
This research aims to adequately generate database states for database applications by developing novel techniques for (1) generating desirable database states to satisfy the given constraints on result sets from the given query, (2) applying this preceding technique on a variety of testing tasks, and (3) exploring more complicated situations such as constraints in multiple interacting queries. The research advances understanding of fundamental issues related to testing database applications and the design and implementation of practical techniques to carry out such testing. Among the broader impacts of the project includes integration of the research into education programs and enhancement of teaching and research infrastructure.