Enfoques de Automatización de Pruebas Funcionales.
Qué es la automatización de pruebas?
En el mundo de las pruebas de software existen varios tipos de técnicas de pruebas, las más conocidas pues son las pruebas manuales y pruebas automatizadas. Ambas se basan en lo mismo, ejecutar un caso de prueba y comparar el resultado actual contra el resultado esperado. Las pruebas manuales son una técnica de pruebas que requieren un esfuerzo humano significativo para garantizar que una solución de software haga todo lo que se supone que debe hacer.
Esta técnica es la más recomendable cuando se trata de probar nuevos cambios a sistemas, pero cuando se trata de garantizar que estos cambios no afecten las funcionalidades que ya fueron probadas en iteraciones anteriores, es otra historia, ya que está demostrado que es ineficaz con el tiempo. esto por varias razones, pero la principal es que el desarrollo de software moderno consiste en ciclos de desarrollo sucesivos que requieren ejecuciones repetitivas de los mismos grupos de pruebas (también conocidas como escenarios de pruebas). Este proceso puede ser extremadamente agotador y llevar mucho tiempo si se realiza manualmente.
Aquí es donde entra la automatización de pruebas a resolver este problema. Desde su inicio se han introducido muchos tipos de pruebas de automatización, y herramientas de pruebas sólidas han permitido a los probadores a ser más prácticos al simplificar la escritura y la reproducción de escenarios de pruebas, lo que libera recursos valiosos y aumenta la productividad empresarial. En este articulo quiero cubrir los tipos de más populares de automatización de pruebas que cualquier probador debe conocer.
Enfoques para automatizar casos de prueba.
Los casos de prueba deben traducirse en secuencias de acciones que se ejecutan en contra del sistema bajo prueba (por sus ciclas en inglés SUT System Under Test). Estas secuencias se pueden documentar en un procedimiento de pruebas y / o se puede implementar en un script de prueba. Además de las acciones, los casos de prueba automatizados también deben definir datos de prueba para la interacción con el SUT y incluir pasos de verificación para verificar que el resultado esperado fue alcanzado por el sistema.
Los enfoques bien establecidos para automatizar casos de prueba incluyen:
Enfoque de captura / reproducción (también conocido como Record and Play )
Este es el tipo de marco más básico. Los probadores escriben y ejecutan un script de prueba para cada caso de prueba individual, como grabar y reproducir un clip en una pantalla, de ahí el nombre “grabar y reproducir”. Debido a su simplicidad, es más adecuado para equipos pequeños y principiantes en automatización de pruebas.
Con este enfoque es importante tener pendiente que los scripts de captura / reproducción son difíciles de mantener y evolucionar porque la ejecución de SUT capturada depende en gran medida de la versión del SUT de la que se haya tomado la captura. Por ejemplo, cuando grabación en el nivel de la GUI, los cambios en el diseño de la GUI pueden afectar el script de prueba, incluso si es solo un cambio en la posición de un elemento GUI. Por lo tanto, los enfoques de captura / reproducción permanecen vulnerable a los cambios.
Enfoque de Scripting Estructurado
La principal diferencia entre la técnica de scripting estructurado y la técnica de record and play es la introducción de una librería de scripts. Contiene scripts reutilizables que realizan secuencias de instrucciones que se requieren comúnmente en una serie de pruebas. Buenos ejemplos de tales guiones son aquellos que interactúan, por ejemplo, con las operaciones de las interfaces SUT.
El esfuerzo inicial para crear los scripts compartidos puede verse como una desventaja, pero esta la inversión debería pagar grandes dividendos si se aborda adecuadamente. Los beneficios de este enfoque incluyen una reducción significativa en los cambios de mantenimiento requeridos y el costo reducido de automatizar nuevas pruebas (porque pueden usar scripts que ya existen en lugar que tener que crearlos todos desde cero).
Enfoque de Pruebas Guiadas por Datos (Data-Driven Testing)
El marco de automatización de pruebas basado en datos se centra en separar la lógica de los scripts de prueba y los datos de prueba entre sí. Nos permite crear scripts de automatización de pruebas pasando diferentes conjuntos de datos de prueba. El conjunto de datos de prueba se mantiene en archivos o recursos externos como hojas de MS Excel, tablas de MS Access, base de datos SQL, archivos XML, etc.
Los scripts de prueba se conectan a los recursos externos para obtener los datos de prueba. Al usar este marco, fácilmente podríamos hacer que los scripts de prueba funcionen correctamente para diferentes conjuntos de datos de prueba. Este marco reduce significativamente la cantidad de scripts de prueba en comparación con el marco basado en módulos.
Enfoque de Pruebas basada en palabras clave (Keyword-Driven Testing)
La prueba basada en palabras clave es una técnica de secuencia de comandos que utiliza archivos de datos para contener las palabras clave relacionadas con la aplicación que se está probando, estas describen el conjunto de acciones necesarias para realizar un paso específico. Una prueba basada en palabras clave consta de palabras clave de alto y bajo nivel, incluidos los argumentos de palabras clave, que se componen para describir la acción de un caso de prueba. También se denomina prueba basada en tablas o prueba basada en palabras de acción.
Con esta técnica primero se identifica un conjunto de palabras clave y luego asocia una acción (o función) relacionada con estas palabras clave. Aquí, cada acción de prueba, como abrir o cerrar el navegador, hacer clic con el mouse, pulsaciones de teclas, etc., se describe mediante una palabra clave como openbrowser, clic, Typtext, etc.
Una vez que se han escrito el guion de control y los guiones de apoyo para las palabras clave, el costo de agregar nuevas pruebas automatizadas se reducirá mucho con esta técnica de scripting. Estos casos de prueba son más fáciles de mantener, leer y escribir, ya que la complejidad se puede ocultar en las palabras clave. Estas pueden ofrecer una abstracción de las complejidades de las interfaces del SUT.
Conclusión.
Si bien no es exhaustivo, espero que con esta breve descripción general de los diferentes enfoques de pruebas de automatización le hayan brindado una mejor comprensión de la automatización de pruebas.
Interesante artículo.
En mi empresa estamos usando un software de automatización de pruebas que se llama suittest.com y lo que más me gusta es que automatizamos pruebas personas que no tenemos conocimientos de programación, sólo conocimientos funcionales de las aplicaciones