25
Mar

6 Frameworks abiertos para testing automation

Un desarrollo de software contempla diferentes fases. Desde su planificación inicial, pasando por su desarrollo a su liberación oficial. Cada parte tiene su proceso, tiempos y costes y una de las que más tiempo llevan es la parte de testeo y resolución de errores. Por tanto,si estás pensando en la automatización como solución estás en el buen camino. Además, si estás pensando en crear tu propio marco de automatización de pruebas mejor es pensarlo dos veces pues en la mayoría de los casos es preferible considerar una o más de las opciones de código abierto disponibles. 

Los equipos de trabajo y desarrollo no necesitan invertir tiempo en complejos mecanismos y procesos exclusivos para probar su software. Mucho del software ya comparte un conjunto de mejores prácticas, herramientas comunes y bibliotecas. Simplemente no es necesario reinventar la rueda, un framework ayudará a que el código de automatización de prueba sea reutilizable, mantenible y estable. 

Y no es tarea fácil, no hablo solo de probar la interfaz de usuario (UI), también es preciso herramientas con capacidad para probar las API. Estás pruebas de integración/API, al omitir la interfaz de usuario, tienden a ser más rápidas y confiables que las pruebas de GUI. En consecuncia es importante contar con herramientas que puedan realizar un conjunto de pruebas en varias capas diferentes de nuestra aplicación. 

Queda claro que “construir nuestro propio framework de pruebas” puede ser una clara trampa salvo que tengamos una ingente cantidad de tiempo y recursos. Por ello, lo mejor es primero revisar algunas de las opciones disponibles basadas en código abierto y evaluar sus capacidades.

6 Frameworks abiertos para testing automation

1. Serenity 

Se trata de un framework basado en Java que se integra a la perfección con  herramientas de desarrollo como Cucumber y JBehave. Está diseñado para facilitar la escritura de pruebas automáticas de aceptación y regresión pues también le permite abstraer gran parte del código repetitivo que a veces necesita escribir para comenzar a usar herramientas como Selenium WebDriver.

Por otro lado, Serenity también ofrece una gran cantidad de funcionalidades integradas, como manejar la administración de WebDriver, administrar el estado entre pasos, tomar capturas de pantalla, ejecutar pruebas en paralelo y más, todo sin tener que escribir una sola línea de código.

Así mismo Serenity crea informes altamente detallados. Fuera de caja, crea documentación viva que puede usar no solo para ver los resultados de su prueba con Selenium BDD, sino también para documentar su solicitud.

Recientemente Serenity agregó recientemente integración con REST Assured, una de las más populares bibliotecas de Java basadas en código abierto para testeo de API. Lo que significa que nos permite ver y validar fácilmente todas las solicitudes y detalles de respuesta en sus informes de prueba sin tener que agregar código adicional.

Por último mención a SerintyJS, una versión con soporte JavaScript pensada en dar soporte a muchos desarrolladores front-end responsables de probar sus proyectos. 

2. Cypress

Cypress es un framework de automatización de pruebas más centrado en el desarrollador que se enfoca en hacer que el desarrollo basado en pruebas (TDD) sea una experiencia agradable y simple. 

Tiene una arquitectura diferente a la otros framework de pruebas; por ejemplo mientras Selenium WebDriver se ejecuta de forma remota fuera del navegador, Cypress se ejecuta dentro de él ofreciendo resultados más consistentes. 

3. Robot Framework

Robot Framework está basado en Python, pero también puede usar Jython (Java) o IronPython (.NET) y utiliza un enfoque basado en palabras clave para hacer que las pruebas sean legibles y fáciles de crear. E incluye muchas bibliotecas de prueba y otras herramientas que puede usar para añadir nuevas funcionalidades para generar un banco de pruebas a la medida de nuestra aplicación. 

Si bien la biblioteca Selenium WebDriver podría ser la biblioteca de prueba externa más utilizada, Robot Framework puede probar otras cosas que no sean sitios web, como FTP, MongoDB, Android y Appium. 

4. TestProject.io

Aquí una de mis opciones favoritas. ¿Estás buscando una herramienta de automatización que sea completamente gratuita y que también tenga una comunidad robusta incorporada a su alrededor?

TestProject es la primera plataforma de automatización de pruebas basada en la nube y basada en la nube del mundo. TestProject hace que sea más fácil para los evaluadores hacer su trabajo rápidamente y colaborar utilizando frameworks de código abierto populares como por ejemplo, Selenium y Appium. 

TestProject fue creado, gracias a su enfoque abierto, para permitir que más probadores y organizaciones se beneficien de las dos principales herramientas de código abierto para la automatización: Selenium y Appium. Al fomentar una comunidad colaborativa que puede unirse como individuos y en equipos, TestProject está dando forma al futuro de las pruebas de software. 

NOTA: En el momento de escribir este artículo, las implementaciones para Java y C# están disponibles. Me han dicho que actualmente se está trabajando en la compatibilidad con Python, JavaScript y otros lenguajes de programación.

5. Galen Framework

Si sus esfuerzos de automatización se centran en el diseño de experiencia del usuario (UX) o en las pruebas de diseño, Galen Framework podría ser el complemento perfecto para sus necesidades.

Creado específicamente para las pruebas de UX, Galen tiene una sintaxis especial y reglas que puede usar para describir y verificar el diseño de su aplicación.

También  permite especificar el tamaño de la ventana del navegador para luego ejecutar pruebas contra nuestra aplicación para verificar las especificaciones de diseño. Las pruebas de Galen también generan informes HTML detallados con capturas de pantalla, y la herramienta incluye una comparación de imágenes visuales con una genial característica de mapa de calor.

6. WebDriverIO

¿Todavía buscando un marco de automatización que aproveche Selenium y permita programar en JavaScript? WebdriverIO le ofrece un completo completo framework para testear nuestras aplicaciones web. Su principal ventaja, además de ser muy ligero, es que no requiere implementar nada desde cero.

Partiendo de una filosofía “click and run”, viene con todo lo necesario para crear conjuntos de pruebas escalables y sostenibles y contiene características adicionales que no se encuentran en otros frameworks. 

¿Cuál elegir? 

Presentadas todas estas opciones llega el momento de elegir una. En realidad no hay un claro ganador, el presente artículo no pretende crear un ranking de framework para testing automation sino enumerar alguna de las múltiples opciones basadas en código abierto disponibles. 

Quizá el mejor consejo es que antes de escribir esa primera línea de código para crear su propio framework, asegúrate de que no haya una biblioteca o framework existente que puedas aprovechar. Deja de perder el tiempo reinventando la rueda; Echa un vistazo a estos framework de automatización primero. 

 

Sigue todos los artículos de Miguel Parada

Leave a Reply

Follow Us On