Te va a interesar!

6/recent/ticker-posts

Automation Frameworks: Qué son?

Cuando hablamos de Selenium, Rest Assured, Cucumber, Katalon, Ranorex y otras bellezas de la fauna de Automation Testing muchas veces nos referimos a "Frameworks". Pero...se detuvieron a pensar qué es exactamente esto que llamamos "Framework"? Hoy, con unos mates de por medio, les voy a contar de qué va esto para que estén informados en esas charlas laborales o, por qué no, entrevistas!

Test Automation Frameworks: La familia de robots. 

Los Frameworks de Automation se refieren al conjunto de funcionalidades y herramientas que nos proveen un entorno en el cual crear tests automatizados, con todo lo que eso conlleva. Primero que nada va a responder a la pregunta: Qué necesitamos automatizar? De ahí se va a desprender lo que vamos a necesitar.

Por ejemplo, para automatizar WebServices vamos a necesitar algo que nos permita enviar Requests sea en SOAP (sigue existiendo eso?) o REST. Dependiendo de qué tipo de WebServices hablemos, vamos a necesitar una u otra librería. O tal vez queramos crear nuestra propia funcionalidad para manejar eso por algún motivo. 

Sumado a eso, vamos a necesitar saber si estamos hablando de BDD, por lo que vamos a necesitar Cucumber o Specflow...lo que me recuerda que tenemos que definir también qué lenguaje de programación vamos a usar! 

Entonces, como verán, el Framework está compuesto de todas estas partes, que podemos considerar engranajes de una maquinaria, la cual es el framework en sí mismo. Y es interesante, porque el IDE, por ejemplo, no es parte del Framework. Es como la carrocería en la que vamos a poner este motor que hicimos. Debería funcionar, mejor o peor, pero va a funcionar de acuerdo a las facilidades que el IDE nos dé. 

Cuando hablamos de Frameworks, no es correcto decir "si, es un framework de IntelliJ/Eclipse con Selenium y...". El Framework es el proyecto, las librerías que las componen y cómo las hacemos interactuar entre ellas. Todos estos engranajes de los que les hablo necesitan sus piezas, y estas son las dependencias o librerías que vamos a usar. Como les decía antes, pueden hacer los engranajes ustedes mismos? Si...pero, al igual que esta analogía, va a llevarles mucho más tiempo y esfuerzo que simplemente tomar el engranaje ya hecho y probado por muchas otras personas. 

Cómo creamos los reportes, cómo y qué tan eficientemente corren nuestros tests...todo eso va a ser responsabilidad del Framework y cómo lo creemos y configuremos (en caso que hablemos de uno creado por nosotros). 

Es Selenium un Framework? Y qué tal Cucumber?  

Como les contaba, cada Framework va a tener muchas partes que lo componen, cada una destinada a hacer un pequeño trabajo, aliviando nuestra tarea a la hora de ensamblar todo para hacer nuestro trabajo en el código. Selenium, para sorpresa de muchos, no es más que una librería que, mediante una API, nos permite interactuar con un driver (browser). 
Para que se den una idea, solo con Selenium en nuestro Framework no vamos a tener ni reportes, ni features escritos en Gherkin para BDD, ni posibilidad de probar WebServices, ni versionado, ni creación de artefactos de test...todo eso va a requerir una pieza extra que vamos a tener en forma de, en su mayoría, dependencias. 

Tengo que crear Frameworks yo mismo? No hay ya hechos?

Bueno, tengo buenas y malas noticias para vos! La buena es que hay bastantes Frameworks que vienen ya empaquetados y listos para usar, como si de una comida congelada se tratase. Te creás cuenta, bajás el software o vas a la página y ya está todo listo para que empieces a crear tus tests automatizados. Tanta facilidad viene con un precio...y es que la personalización suele estar muy limitada. También muchas de estas herramientas son de pago, con el modelo de suscripción pidiendo que pagues por usuarios, requests o demás cosillas por mes. 

Dependiendo cuál sea tu caso, una cosa puede ser mejor que la otra. Generalmente, a largo plazo, las empresas prefieren construir sus propios frameworks ya que no dependen de otros equipos para el mantenimiento o el agregado de funcionalidades. 

Entre estos Frameworks ya listos para usar ni bien los metés en el microondas tenemos a Katalon Studio (gratuito, aunque con una versión Business recientemente lanzada que me hace perder un poquito de fe en su futuro...), Ranorex (paga), testim.io (versión gratis limitada, modelo de suscripción), Robot Framework (para ATDD), mabl.io (otra herramienta script less vendida como ideal para equipos sin experiencia escribiendo código) y algunas más que seguro me estoy olvidando. 

Cada uno tiene sus PROS y CONS, cosa que iré cubriendo de a poco en futuras notas. Lo que si les puedo decir es que, siempre que puedan, tengan tiempo y presupuesto, lo ideal es crear el Framework a medida del proyecto. Y si están en una empresa grande, a cargo de la automatización centralizada de todos los proyectos (hola yo!), crear templates desde los cuales otros equipos puedan construir es el mejor plan de acción para mantener a todos en la misma línea! 

Conclusión: Frameworks para todos los gustos.

Ahora creo que quedó bastante claro de qué hablamos cuando hablamos de Frameworks en el contexto de Test Automation. Resumiendo, es el conjunto de elementos que hacen al proyecto en el que habitan los scripts automatizados. Selenium es una pequeña parte, Gradle o Maven es otra parte aún más central al encargarse de las dependencias y la build, Cucumber es otra parte, la dependencia que usemos para el reporting otra, Rest Assured otra, etc. 

Los podemos hacer nosotros, lo cuál nos va a dar control absoluto sobre el producto final (y un gran grado de satisfacción!), como pueden aprender en los tutoriales.

Podemos usar una herramienta que ya tenga todo ésto definido y nos deje el trabajo de crear los tests solamente, cosa que nos ahorra tiempo pero nos limita en la personalización. 

Es cuestión de saber a qué apuntamos, qué tenemos y qué necesitamos! 

Hasta la próxima! La semana que viene les voy a traer mis notas sobre el TestBash en Nueva Zelanda, contando todo lo que pueda sobre cómo es Testing por estos lares, info útil para los que piensen en venir a trabajar al país kiwi y mucho más!

Publicar un comentario

1 Comentarios