Cómo reducir en un 70% el coste de las pruebas mediante contract testing

Los microservicios resuelven problemas como la escalabilidad y reducen el time to market de manera considerable. Esto permite a las empresas innovar y hacer despliegas de forma rápida, reduciendo los costes de producción y aumentando la velocidad de despliegue, lo que supone una ventaja competitiva en entornos de constantes cambios. 

Sin embargo, a la hora realizar pruebas en un entorno de microservicios, la implementación de pruebas end-2-end son lentas y complejas. Cuando el número de puntos de integración aumenta, también aumenta el número de pruebas manuales E2E necesarias, lo que se traduce en un alto coste y un gran número de bugs, especialmente cuando los servicios son diseñados por distintos equipos. 

Pues bien, imaginad lo que ocurre cuando lo que tienes que hacer es implementar actualizaciones a más 200 aplicaciones en más de 40 equipos.  

Desde Sngular, junto a nuestro partner de integración Pactflow, aceptamos el reto de crear un entorno de pruebas con Contract Testing a más de 40 equipos de desarrollo. 

El reto

La organización se encontraba inmersa en un proceso de modernización de sus aplicaciones que implica el desacoplamiento de lógica de negocio en microservicios y la eliminación de código legacy, entre otras tareas.

Para el éxito de este ambicioso proyecto, se debía de dotar a los 40 equipos que formaban el departamento de ingeniería de las herramientas adecuadas que les permitieran entregar funcionalidades de manera ágil y sin errores.

Por otro lado, para reducir el coste de este proceso de modernización, era preciso buscar opciones que minimizasen el gasto en infraestructura y el tiempo dedicado a pruebas.

La solución

La implementación de Contract Testing en una gran empresa no es una tarea sencilla, ya que implica la coordinación de varios equipos y departamentos. Es por esto que optamos por formar un equipo multidisciplinar y con gran capacidad técnica y de comunicación. El equipo SNGULAR estaba formado por perfiles de QA, DevOps y Arquitectos técnicos.

Por otro lado, éramos conscientes de que para que la integración de nueva herramienta en el ciclo de desarrollo tenga éxito se debe implicar a los principales decisores, realizar un seguimiento continuado, definir métricas, acompañar y formar a los equipos. Todo esto, se materializó en la creación de un grupo de práctica encargado del seguimiento de la implantación de contract testing. 

El éxito de este tipo de proyectos depende en gran medida de poder presentar resultados rápidamente y que el resto de la compañía vea el beneficio de los cambios implementados. Es por esto que decidimos comenzar con la integración de Pactflow con dos equipos pilotos.

El trabajo diario con los equipos consistió, en primer lugar, en sentar las bases técnicas adecuadas mediante formaciones y workshops. Una vez completada esta primera fase, se trabajó junto al equipo en la implementación de las pruebas de contract testing mediante pair programming y en la adecuación de los pipelines de integración continua para automatizar los despliegues. También, en paralelo, se obtenía información y métricas para comprobar el avance de los equipos.

El grupo de práctica estaba puntualmente informado de los avances y era consciente de dificultades encontradas en el día a día. Esta comunicación fluida facilitaba la toma de decisiones de manera ágil.

El resultado

La integración de Contract Testing con Pactflow redujo un 70% el tiempo empleado en fases de testing y redujo los costes de infraestructura dedicada a pruebas. Además, esta nueva metodología de trabajo mejoró la comunicación entre equipos y resultó crucial en la detección temprana de errores.

Por otra parte, establecer un grupo de práctica se mostró como una de las mejores opciones para integrar una nueva herramienta de manera ágil y progresiva dentro de una gran organización.

¿Quieres saber más?

Descubra cómo nuestro equipo de Quality Assurance puede dar a tu empresa una ventaja de adaptación.