Data-driven testing
# Data-driven testing

Data-driven testing (DDT), del inglés, "test dirigido por los datos" es un término usado en software para describir un tipo de test hecho en tabla usando como entrada condiciones y como salida resultados verificables, así como el proceso donde las configuraciones del entorno no están prefijadas (hard-coded). En su forma más sencilla, los testers proveen las entradas en una fila e indican los resultados esperados en otras columnas de la misma fila. Generalmente la tabla contiene valores que corresponden para intervalos o secciones. En algunas metodologías, la información es "leída" desde una base de datos.

## Introducción

En el test de software o programas, muchas metodologías están disponibles para la implementación de este tipo de test. Cada uno de estos métodos co-existen porque se diferencian en el esfuerzo requerido para crearlos y mantenerlos. La ventaja de DDT es la facilidad que tiene para agregar condiciones de entrada y salida en la tabla cuando nuevas secciones o intervalos van siendo descubiertos o agregados a la lógica del producto o SUT. El hacer las cosas así, permite reducir los costos para la automatización, pero eleva el costo para tests manuales.

## Resumen sobre la metodología

* Data-driven testing es la creación de tests para ejecutarse en simultáneo con sus conjuntos de datos relacionados en un framework. El framework provee una lógica de test reusable para reducir el mantenimiento y mejorar la cobertura de test. La entrada y salida (del criterio de test) pueden ser resguardados en uno o más lugares del almacenamiento central o bases de datos, el formato real y la organización de los datos serán específicos para cada caso.

Los datos incluyen variables usadas para la entrada como la verificación de la salida. En casos avanzados (y maduros) los entornos de automatización pueden ser obtenidos desde algún sistema usando los datos reales o un "sniffer", el framework DDT por lo tanto ejecuta pruebas sobre la base de lo obtenido produciendo una poderosa herramienta de test automáticos para regresión. La navegación a través del SUT, leyendo los orígenes de datos y "logueando" el estado de los test y su información son codificados en un script para test.

## Data Driven

Todo lo que tiene potencial de cambiar (también llamado "variabilidad," e incluye elementos como el entorno, puntos de salida, datos de test, ubicaciones, etc) está separado de la lógica del test (scripts) y movido a un 'recurso externo'. Esto puede ser configuración o conjunto de datos de test. La lógica ejecutada en el script está dictada por los valores. Keyword-driven testing es similar, excepto que el caso de test está contenido en los conjuntos de datos y no embebidos o "prefijados" (hardcoded) en el script de test mismo. El script es solo un "driver" (o mecanismo de resolución) para los datos que están mantenidos en un origen de datos.

Las bases de datos usadas para DDT pueden incluir:

* Data pools
* orígenes de ODBC
* Archivos CSV
* Archivos Excel
* objetos DAO
* objetos ADO
