Incremental test data generation for database queries

Testing database applications is a complex task since it involves designing test databases with meaningful test data in order to reveal faults and, at the same time, with a small size in order to carry out the testing process in an efficient way. This paper presents an automated approach to generati...

Descripción completa

Detalles Bibliográficos
Autores: Suárez Cabal, María José|||0000-0001-8262-2871, Riva Álvarez, Claudio A. de la|||0000-0001-5592-9683, Tuya González, Pablo Javier|||0000-0002-1091-934X, Blanco Aguirre, Raquel|||0000-0003-2855-0760
Tipo de recurso: artículo
Fecha de publicación:2017
País:España
Institución:Universidad de Oviedo (UNIOVI)
Repositorio:RUO. Repositorio Institucional de la Universidad de Oviedo
Idioma:inglés
OAI Identifier:oai:digibuo.uniovi.es:10651/57781
Acceso en línea:http://hdl.handle.net/10651/57781
https://dx.doi.org/10.1007%2Fs10515-017-0212-7
Access Level:acceso abierto
Palabra clave:software testing
database testing
test database generation
test coverage
constraint satisfaction problem (CSP)
software engineering
Descripción
Sumario:Testing database applications is a complex task since it involves designing test databases with meaningful test data in order to reveal faults and, at the same time, with a small size in order to carry out the testing process in an efficient way. This paper presents an automated approach to generating test data (test relational databases and test inputs for query parameters) for a set of SQL queries, with the aim of covering test requirements as obtained from said queries. The test data generation follows an incremental approach where, in each increment, test data are generated to cover a test requirement by re-using test data previously generated for other test requirements. The test data generation for each test requirement is formulated as a constraint satisfaction problem, where constraints are derived from the test requirement, initial database states and previously generated test data. The generation process is fully automated and supports the execution on complex queries and databases. Evaluation is carried out on a real life application, and the results show that small-size generated test relational databases achieve high coverage scores for the queries under test in a short generating time.