¿Por qué es importante que los test sean parte del ciclo de desarrollo?
Imaginemos que estamos construyendo una aplicación desde cero. Si trabajamos de forma ágil, nuestro primer objetivo será construir un MVP ó Mínimo Producto Viable y a partir de ahí seguiremos evolucionando el producto. Durante todo este ciclo de desarrollo se van diseñando y programando diferentes módulos individuales que serán reutilizados en diferentes parte de la misma aplicación. Estas partes pueden ser desde elementos visuales como botones, banners, elementos de un formulario, o bien partes de código que se ejecuta en el lado del servidor reutilizables para optimizar el tiempo de desarrollo. Los test automatizados van creando nuevos elementos, añadiendo nuevas funcionalidades, arreglando fallos encontrados, es decir, hacen evolucionar el producto. Por cada uno de estos cambios, ya sea una nueva mejora o una corrección de un error conocido, significa que existe un nuevo caso de uso dentro de nuestra aplicación, algo que el usuario puede hacer que antes no podía, esto significa que debemos comprobar que una vez puesto en producción los nuevos cambios, la aplicación funciona, nuestros cambios funcionan, hacen y se visualizan de la forma que esperábamos. Pero esto no queda ahí, porque no sabemos si con esos nuevos cambios, hay otra parte de nuestro producto que ha dejado de funcionar o ahora tiene un comportamiento inesperado, si recordamos, antes comentamos que durante el desarrollo de software, se van creando pequeños módulos con la intención de ser reutilizado en varios puntos de nuestra aplicación, por lo que sí hemos tocado uno de esos módulos que se están utilizando en varias partes del programa, no solo debemos probar que la nueva funcionalidad que acabamos de subir funciona, sino que debemos ir a cada una de las páginas o secciones de nuestro producto que use el mismo módulo que hemos modificado para volver a comprobar que siguen funcionando. Si este proceso fuese manual, costaría mucho hacerlo y no habría una garantía de que se han realizado todas las pruebas correspondientes, ya que es fácil que se nos olvide volver a probar un caso muy en concreto, no saber qué módulos afectan a qué parte del software, o simplemente no tener la capacidad de probar nuestro software en cada dispositivo móvil, desktop, tablet… Es aquí donde la automatización de test se convierte en protagonista y, como parte del flujo de desarrollo, añadimos una etapa donde para cada evolución del producto definiremos una serie de pruebas que se ejecutarán de forma automática y que comprobarán que dicha evolución funciona. De esta forma, siempre que hacemos una modificación en el código, independientemente si es para arreglar un fallo o añadir mejoras, se ejecutarán todas las pruebas que irán probando cada una de las partes y casos de uso de nuestra aplicación asegurándose que todo funciona correctamente antes de ser puesto en producción. El trabajar con test nos permite tener los procesos, herramientas y métodos de trabajo necesarios para garantizar la calidad de cada entrega o desarrollo. En resumen los test automatizados nos aportan importantes beneficios:
- Ahorran tiempo y dinero: Los test automatizados multiplican la capacidad de probar la aplicación, minimizan significativamente las pruebas manuales permitiendo que las personas se enfoquen en realizar otro tipo de tareas. También permite realizar más cantidad de pruebas, sin la necesidad de contratar más personas.
- Más precisión: Proporcionan herramientas de reporting y diferentes tipos de entornos para probar nuestro software, diferentes dispositivos, sistemas operativos, etc. Por lo que nos permite tener mayor precisión a la hora de encontrar fallos.
- Estabilidad: Al añadir los test automáticos dentro del flujo de desarrollo se permite que el producto pueda evolucionar de una forma más rápida y estable ya que la mayoría de errores los encontrarán antes de subirlo a producción.
Espero que con este artículo haya quedado claro la importancia de los test automatizados y los beneficios que aporta a nuestro negocio. Así que es hora de dejar de ver esta fase como una “pérdida de tiempo” y empezar a verla como lo que realmente es, una inversión a futuro.