¿Qué es un Framework de Automatización?
En las pruebas de software, la automatización nos permite una ejecución de pruebas más rápida y constante en comparación con las pruebas manuales. En la actualidad, para realizar pruebas automatizadas funcionales se cuenta con herramientas como Selenium, TestNG, Sikuli, Cypress, Watir, TestCafe, WebdriverIO, entre otros. En cada una de estas contamos con opciones para realizar comparaciones entre resultados obtenidos y resultados esperados, y realizar reportes.
Un framework se encarga de encapsular funciones genéricas y comunes del software que se requiera, a la vez que estandariza la generación de código. Esto agiliza el alcance de requerimientos para así disminuir el tiempo que se dedica a tareas de bajo nivel requeridas para el proyecto.
Un framework de automatización nos permite tener un conjunto de pautas o reglas para la generación de casos de prueba y estandarizar la ejecución de pruebas tales como UI, API, de rendimiento, seguridad, entre otras.
Tipos de Framework de Automatización:
- Data driven: Son aquellos en que los datos requeridos para la ejecución de las pruebas (llamados ‘dataset’), son separados del código de las pruebas, ya sea en archivos de Excel, .csv, json, xml o directamente a una base de datos. Con esto, en caso de que tengamos que cambiar los resultados esperados, no tendremos que modificar las pruebas sino solamente la fuente de los datos. Además, la aplicación puede ser probada con múltiples conjuntos de valores de datos durante las pruebas de regresión.
- Keyword driven: También llamada ‘Table-driven’. Con esta técnica se identifican una serie de palabras clave y luego se asigna cada una de éstas a una serie de acciones como login, clicks, cerrar ventana. Requiere tablas en las que se almacenen los “keywords” y sus acciones, tablas para los datos a utilizar y los scripts que interactúan y se ocupen de la parte lógica.
- Modular: Este tipo de framework incluye la creación de scripts pequeños e independientes que representan módulos, secciones y funciones de la aplicación a probar. Esta separación nos permite una mejor mantenibilidad y actualización de las pruebas.
- Behavior Driven Development: Utilizan lenguaje natural, no técnico, para la especificación de las pruebas, con el objetivo de que las mismas sean entendibles tanto para analistas de negocio como para desarrolladores y testers.
- Hybrid: Cada uno de los tipos de framework anteriormente mencionados cuenta con una serie de ventajas, por lo que es usual que los frameworks de automatización que se utilizan cuenten con un híbrido de dos o más de ellos; especialmente la parte de modularización y utilización de data sets.
Razones Para Usar un Framework:
- Reutilización de código; nos permite enfocarnos en el desarrollo de nuevas pruebas y ampliación de la cobertura
- Mantenimiento y escalabilidad
- Consistencia e integración
- Estándar para el equipo de trabajo
- Reducción de los tiempos de ejecución de las prueba
- Integración de reportes acordes a las necesidades del equipo
Ventajas del Framework de Avantica:
Avantica cuenta con un framework de automatización híbrido que ofrece:
- Automatización de UI, desktop web y mobile
- Manejo adecuado de excepciones
- Integración con la herramienta Testlink
- Capa de manejo de datos
- Integración con herramientas de integración continua
La utilización de un framework de automatización nos da múltiples ventajas comparado con la simple utilización de una herramienta que nos puede llevar a malas prácticas, reescritura de funciones similares y dificultades de mantenimiento. Debido a esto, podemos concluir que sin importar la herramienta de automatización que estemos utilizando, es importante que por medio de las metodologías anteriormente mencionadas, la integremos en algún framework para así tener todos los beneficios de la misma en lo que queramos automatizar.