Long Beach, CA, USA
Mar. 1, 2010 to Mar. 6, 2010
Bhanu Pratap Gupta , Indian Institute of Technology, Bombay, India
Devang Vira , Indian Institute of Technology, Bombay, India
S. Sudarshan , Indian Institute of Technology, Bombay, India
Checking if an SQL query has been written correctly is not an easy task. Formal verification is not applicable, since it is based on comparing a specification with an implementation, whereas SQL queries are essentially a specification without any implementation. Thus, the standard approach for testing queries is to manually check query results on test datasets. Intuitively, a mutant is a query variant that could have been the correct query if the query was in error; a mutant is killed by a dataset if the original query and the mutant return different results on the dataset. In this paper, we address the problem of generation of test data for an SQL query, to kill mutants. Our work focuses in particular on a class of join/outer-join mutants, which are a common cause of error. To minimize human effort in testing, our techniques generate a test suite containing small and intuitive test datasets, combining them into a single dataset where possible. In the absence of foreign-key constraints, and under certain assumptions, the test suite is complete, i.e. it kills all nonequivalent mutations, in the class of join-type mutations that we consider. We also consider some common types of where-clause predicate mutants. Our techniques have been implemented in a prototype data generation tool.
Bhanu Pratap Gupta, Devang Vira, S. Sudarshan, "X-data: Generating test data for killing SQL mutants", ICDE, 2010, 2013 IEEE 29th International Conference on Data Engineering (ICDE), 2013 IEEE 29th International Conference on Data Engineering (ICDE) 2010, pp. 876-879, doi:10.1109/ICDE.2010.5447862