iConSMutate: Concolic Testing of Database Applications Using Existing Database States Guided by SQL Mutants

Tanmoy Sarkar, Samik Basu, Johnny Wong · 2014

Recent testing techniques for database applications typically include generation of both program inputs and database states (synthetic data). The quality of such test cases is evaluated on the basis of structural coverage of the host language (e.g., Java), whereas, the quality of test cases for the embedded language (e.g., SQL) is evaluated separately using mutation testing. In mutation testing, several mutants of the original query are generated and mutation score is calculated. It is the percentage of mutants that can be killed using the given test cases. Higher mutation score indicates higher quality in terms of identifying programming errors. In existing approaches, the generated test cases achieve high structural coverage with the help of synthetic data, but may suffer from low mutation score. In practice, there may exist a copy of live databases that can be used for database application testing. Using an existing database state is desirable since it tends to be representative of real-world scenarios. We propose a novel framework called iConSMutate to generate test cases for a database application by reusing the existing database state. The generated test cases ensure high quality both in terms of coverage of code written in the host language and mutant detection of the queries written in the embedded language.

Read the paper · More papers on PaperTik