Keyword-driven testing
# Keyword-driven testing

Testing basado en palabras clave, del inglés Keyboard-driven testing, también conocido como test basado en tablas (del inglés table-driven testing) o palabras de acción testing (del inglés action word based testing), es una metodología de software testing aplicable a tanto testing manual como automático. Este método separa la documentación de los casos de test -incluyendo los datos a usar- desde la prescripción de la forma en que los test serán ejecutados. Como resultado, separa el proceso de creación de tests en dos diferentes etapas; una etapa de diseño y desarrollo, y una etapa de ejecución.

## Resumen

Esta metodología usa palabras clave (o palabras de acción) para simbolizar una funcionalidad a ser probada, como Ingresar Cliente. La palabra clave Ingresar Cliente está definida como un conjunto de acciones que deben ser ejecutadas para ingresar un nuevo cliente a la base de datos. Su documentación en palabras clave podría contener:

* El estado inicial del sistema en prueba (SUT)
* La ventana o el menú desde donde iniciar
* Las teclas o clics del ratón para llegar a la ventana de entrada de datos correcta
* Los nombres de los campos para encontrar y los valores a ingresar
* Las acciones a realizar en caso de recibir cuadros de diálogo adicionales de tipo pop-up (como confirmaciones)
* El botón para hacer clic al finalizar (submit)
* Una afirmación (conocidos como Assert) acerca de lo que el estado del SUT debe ser después de la finalización de las acciones

Listas de palabras clave en sintaxis para pruebas utilizando un formato de tabla (ver ejemplo abajo). La primera columna (columna A) tiene la palabra clave, Enter Client, que es la funcionalidad a probar. Luego las columnas restantes, B-E, contienen los datos necesarios para ejecutar la palabra clave: nombre, dirección, código postal y ciudad.

| A | B | C | D | E |
| - | - | - | - | - |
| . | Name | Address | Postcode | City |
| Enter Client | Jane Smith | 6 High Street | SE25 6EP | London |

Para ingresar otro cliente, el probador crearía otra fila en la tabla con Enter Client con la palabra clave y los datos del nuevo cliente en las siguientes columnas. No hay necesidad de volver a listar todas las acciones incluidas.

## Ventajas

Prueba de palabras clave impulsado reduce la sensibilidad al mantenimiento causado por cambios en el software bajo prueba. Si los diseños de pantalla cambian o el sistema se migra a otro OS apenas cambios tienen que hacerse para los casos de prueba: Se harán los cambios a la documentación de la palabra clave, un documento para cada palabra clave, no importa cuántas veces se utiliza la palabra clave en casos de prueba. También, debido a la descripción muy detallada de la forma de ejecución de la palabra clave (en la documentación de palabras clave) la prueba se puede realizar por cualquier persona. Por lo tanto las pruebas-palabra clave impulsada se puede utilizar tanto para las pruebas manuales como automáticas

## Metodología

La metodología de prueba palabra clave impulsada divide la ejecución del proceso de prueba en varias etapas: Preparación # Prueba: base de pruebas de admisión, etc

* Prueba de diseño: análisis de la base de pruebas, diseño de casos de prueba, diseño de datos de prueba.
* Ejecución de la prueba manual: la ejecución manual de los casos de prueba utilizando la documentación de palabras clave como guía la ejecución.
* Automatización de ejecución de la prueba: la creación de script automatizado que realice acciones de acuerdo con la documentación de palabras clave.
* Automatizada ejecución de la prueba.

## Definición

Una palabra clave o Acción Palabra es una combinación definida de acciones en un objeto de prueba que describe cómo se deben ejecutar las líneas de prueba. Una palabra de acción contiene argumentos y se define por un analista de prueba.

### Automatización de la ejecución de la prueba

La etapa de implementación varía en función de la herramienta o marco. A menudo, los ingenieros de automatización implementar un marco que proporciona palabras clave como "cheque" y "enter". Testers o diseñadores de prueba (que no necesitan saber programar) escribe [casos de prueba] s sobre la base de las palabras clave definidas en la etapa de planificación que se han implementado por los ingenieros. La prueba se ejecuta utilizando un controlador que lee las palabras clave y ejecuta el código correspondiente.

Otras metodologías utilizan un estadio todo-en-uno aplicación. En lugar de separar las tareas de diseño de la prueba y de ingeniería de pruebas, el diseño de la prueba '"es"' la automatización de pruebas. Palabras clave, tales como "editar" o "comprobar" se crean usando las herramientas en la que el código necesario ya se ha escrito. Esto elimina la necesidad de ingenieros adicionales en el proceso de prueba, porque la implementación de las palabras clave es ya una parte de la herramienta. Los ejemplos incluyen GUIdancer, Silk Test o QTP.

### Pros

* El mantenimiento es bajo en el largo plazo:
   * Los casos de prueba son concisos
   * Los casos de prueba son legibles para las partes interesadas
   * Los casos de prueba fácil de modificar
   * Nuevos casos de prueba pueden volver a utilizar las palabras clave existentes con mayor facilidad
* La búsqueda reutilización a través de múltiples casos de prueba
* No depende de una herramienta específica o lenguaje de programación
* División del Trabajo
   * Construcción Caso de prueba necesita experiencia en el campo más fuerte - menores habilidades de herramientas de programación /
   * Aplicación de palabras clave requiere mayor habilidad / herramienta de programación - con habilidad dominio relativamente menor
* La abstracción de capas

### Contras

* Mayor tiempo de comercialización (en comparación con las pruebas manuales o registro y la técnica de repetición)
* Curva de aprendizaje inicialmente Moderadamente alta.
