Te va a interesar!

6/recent/ticker-posts

El uso menos pensado (y de los mejores) para Automation!


Siempre pasa que, cuando hablamos de Automation en testing, todos piensan "Oh si, automatizar test cases. Crear Features en Cucumber y que las acciones se hagan solitas con algo como Selenium".

Algunos más aventurados dirán "podemos automatizar las llamadas a las APIs y validar sus respuestas!" Y muchas cosas más.

Si, es cierto que todos esos son escenarios válidos para Automation y, sin dudas, los más usados en la industria. Pero hay también un uso que, si se hace bien, va a significar una ventaja mucho mayor en la labor de testing!

Primero que nada: En mi experiencia no siempre fue el caso que Automation ayude a los testers. Más de una vez los equipos terminan enroscados en un eterno ciclo de mantener tests que se rompen para volver al casillero uno hasta que se vuelven a romper, posiblemente en el próximo sprint y porque nadie planificó bien qué automatizar. Y encima hicieron todo en la UI...

Con esto no quiero decir que siempre está mal automatizar. De hecho si se planifica bien y se respetan las mejores prácticas, van a terminar con una maquinaria hermosa de feedback de QA automatizado, eficiente y veloz.

Pero hay algo que no muchos ven y que ayuda muchísimo en Testing. Es más...creo que fue la primer aplicación que le di a Automation en un trabajo, dado que oficialmente todavía no podía automatizar los casos de prueba (porque lo estaba haciendo a escondidas!).

Ese algo es... automatizar las actividades de test prep en la mayor medida que se pueda. Qué quiero decir con ésto? Veamos...

En el caso que les mencioné, de ese antiguo proyecto, la onda iba así:

- Cada vez que se corría un UAT, había que crear decenas de contratos en decenas de clientes.

- Cada contrato tenía que poseer unos nodos muy específicos, a los cuales se asignaban streams de revenue y billing y muchas cosas más propias del software en cuestión.

- Todo esto era SOLO para poder empezar a testear. Tanto los testers como los que hacían UAT.

Como se imaginarán, esto llevaba muchísimo tiempo que no aportaba realmente ningún valor. Ahí fue que, como una fugaz idea y como envión que le de más valor a lo que venía haciendo con Automation (Coded UI por ese entonces, automatizando un Backend SAP y un Front .NET), propuse automatizar la tediosa tarea de preparar el ambiente que se usaba para UAT.

Antes de cada UAT, se corrían los scripts una vez se confirmaba que estaba todo listo y ahí iban ellos, creando durante la noche toda la data necesaria, dejando el ambiente de pruebas en el estado necesario para poder aplicar el verdadero valor humano a las pruebas.

Esto en ese momento lo hacía a través de la UI, cosa que no era ni eficiente en tiempo ni mucho menos en mantenimiento. Pero iba de mil maravillas. Si tuviese que hacerlo hoy posiblemente lo haría con cualquier API que me permita crear esa data.

Justamente eso hice en uno de mis primeros clientes en Nueva Zelanda. Usando las APIs, creaba clientes, usuarios, etc. También les creaba roles, les asignaba permisos y más. El resultado era que los tests en Jenkins siempre iban sin problemas porque la data y estado de la app estaban a punto caramelo a primera hora de cada mañana. No importaba si habían hecho una limpieza de datos, borrado usuarios, etc.

Y esto me lleva a otra aclaración! Si ustedes pueden incluir esta automatización del test prep en sus pipelines de CI/CD, mucho mejor! Esto va a permitir que siempre que se llegue a la instancia de correr las pruebas como parte de un cambio en el código, todo esté listo siempre y sin tener que meter mucha mano.

Conclusión.


Automation PUEDE ayudar a que todo vaya más rápido y amplificar esos ciclos de feedback como digo yo. Esto es en parte de lo que trata DevOps: Amplificar el feedback en cada paso que damos en la integración y mejora continua de nuestro software. Una buena automatización qué es? No es que las cositas corran solas y todos felices. Es que las automatizaciones habiliten a tener feedback más rápido, de forma consistente y con información de calidad sobre la cual tomar decisiones.

Y ustedes... qué opinan de esto? Han usado Automation para ayudar a Testing sin necesariamente estar automatizando pruebas?


Publicar un comentario

0 Comentarios