Mejorando las pruebas con sistemas virtualizados junto con entrega continua

La adopción de un modelo de entrega continua, permite aumentar la flexibilidad respecto a la creación de software para diferentes clientes.


Esta estrategia de ciclos cortos, garantiza que el software pueda ser lanzando, de forma segura, en un entorno de producción en cualquier momento.

Si nos centramos en la frase “de forma segura”, hablamos de ponerla en producción con garantía y hay que enfocarse en buenos procedimientos de pruebas que, en la mayoría de los casos, es automática. Estas pruebas, tienen que estar desatendidas y ser lanzadas en cada build y en cada integración que queramos realizar al entorno deseado.

Para que todo funcione como debe, es necesario tener un entorno, solo, de pruebas y que tenga todo el pack completo de dependencias, funcionalidades y, sobre todo, que sea bajo demanda.

Si os habéis enfrentado a esta tesitura, ya sabréis que no es algo fácil y que una de las opciones más exitosas es la virtualización de servicios o de entornos.

Con la virtualización, podemos simular dependencias complicadas y poder tomar el control total del entorno de pruebas.

Un sistema virtualizados, no necesita que las dependencias estén disponibles, ya que se pueden “simular” para realizar las pruebas de la manera con más garantía. Además, estos entornos son más rápidos de montar y desmontar y solo gastaremos lo que tardemos en realizar las pruebas.

La virtualización ha aumentado en uso de manera exponencial y permite que las organizaciones mejoren sus esfuerzos y presupuestos en las pruebas, haciendo que los sistemas sean más efectivos e inteligentes. El siguiente paso ha seguir, con este tipo de entornos, es que el desarrollo, las pruebas y la implementación sean más flexibles y, sobre todo, como se comenta arriba, bajo demanda.

Para trabajar en sistemas virtualizados, existen varias soluciones que permiten levantar entornos de prueba bajo demanda con contenedores, al igual que si fueran aplicaciones de pruebas. Además, se pueden acompañar, directamente con las baterías de pruebas automatizadas.

Los beneficios de implantar sistemas virtualizados en ciclos de integración continua, pasan por los siguientes puntos:

·      La virtualización puede tratarse como artefactos del proceso de desarrollo, por lo tanto, se pueden versionar, distribuir y reutilizar y si existe algún tipo de problema, tendremos detectado el punto exacto.
·      La creación de entornos de pruebas se realiza de manera muy sencilla ya que, una vez montado el primer contenedor, es cuestión de lanzarlo tantas veces como queramos o aplicar todo a uno nuevo.
·      Al tener los entornos virtualizados en contenedores, el implementar varios, actualizarlos o restablecerlos si hubiéramos realizado algo raro en él, es tan sencillo como tirarlo abajo y refrescarlo para volver a levantarlo.

Actualmente, el proveedor más conocido es Docker, pero hay variedad de ellos como Hoverfly, Virtualize de Parasoft o máquinas virtuales de Azure (DevOps) que tienen equipado un motor de virtualización.

Adoptar este tipo de mecánicas de trabajo, puede hacer que las organizaciones eliminen cuellos de botella con los entornos de prueba tradicionales y sobre todo ser mucho más flexible y ágil.
Siguiente Publicación

Comentarios