Publication:
Generación de casos de prueba para SQL

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2012
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
Abstract
El uso de bases de datos está ampliamente extendido, sin embargo, hay una falta de herramientas de depuración y prueba que asistan su desarrollo. Comprobar la corrección de una consulta SQL es difícil usando bases de datos reales, ya sea porque el número de filas en bases de datos pobladas es normalmente muy elevado o por la carencia de datos en las primeras fases del desarrollo. Para solventar este problema hemos desarrollado una herramienta que, dada la definición de una base de datos SQL y una vista objetivo, encuentra una instancia de la base de datos para la cual la consulta de la vista no devuelve una respuesta vacía, lo que se considera un caso de prueba positivo. Aplicando recientes resultados de investigación, transformamos la búsqueda de esta instancia a un problema de resolución de restricciones. Ampliamos también el ámbito de aplicación de esta técnica presentando un nuevo enfoque para tratar condiciones existenciales anidadas. Dividimos el proceso de obtención de casos de prueba en tres fases. Primero se analiza el código SQL que define la base de datos a estudiar. Posteriormente, dado el nombre de la vista objetivo, se generan las fórmulas que representan las condiciones que una instancia debe cumplir para ser un caso de prueba de dicha vista. Finalmente se traducen estas fórmulas a un lenguaje de programación con restricciones específico, cuyas soluciones constituyen los casos de prueba buscados. El trabajo presenta un prototipo novedoso en el campo de las bases de datos y muestra una forma de suplir la carencia actual de herramientas de prueba para su desarrollo. [ABSTRAC] The use of databases is widely extended, however, there is a lack of testing and debugging tools to assist it's development. To test the correctness of an SQL query is difficult using actual databases, either because the number of rows in populated databases is usually large or because they have few data in early stages of development. To solve this problem we have developed a tool that, given an SQL database definition and a target view, fnds a database instance for which the view's query does not return an empty answer, this is considered to be a positive test case. Implementing recent research results, we transform the search for this instance to a constraint satisfaction problem. We also expands this technique's scope by presenting a new approach for nested existential conditions. We divide the test case generation process in three phases. First the SQL code of the database is analysed. Then, given the target view's name, the formulas representing the conditions that an instance has to satisfy in order to be a test case for this view are generated. Finally this formulas are translated into an specific constraint language, which solutions are the desired test cases. This work presents a prototype which introduces new approaches in the field of databases and shows a way of solving the lack of test tools for it's development.
Description
Proyecto de Sistemas Informáticos (Facultad de Informática, Curso 2011-2012)
Unesco subjects
Keywords
Citation