Pautas para la realización de pruebas ágiles con DevOps

Llevamos unos años escuchándolo, pero no se llega a materializar del todo o estamos en medio del cambio, es el llamado DevOps.


Muchas empresas han empezado a implantarlo, automatizando pruebas, derribando barreras e implementando herramientas y procesos adecuados para su manera de trabajar. De manera paralela, si hablamos de DevOps, tenemos que tener en mente la metodología ágil, ya que, si no, es muy complicado el realizar una implementación y proceso completo.

A nivel de pruebas, ¿qué está sucediendo? Muy sencillo, los tiempos se están acotando y ya no tenemos tanto como antes (incluso menos, si), por lo tanto, estamos requiriendo el adoptar modelos ágiles de pruebas que nos permitan ir de la mano a este tipo de filosofía de trabajo.

La automatización de pruebas es una de las grandes ventajas y nos aporta rapidez y reduce el tiempo empleado en probar una aplicación, pero a veces, se realizan demasiados ciclos y es muy complicado el seguir el nivel o tener todo tan probado como quisiéramos. Él único modo de que esto funcione es realizando pruebas muy sólidas que nos permitan hacer ejecuciones 24/7.

Para optimizar estas pruebas tenemos que tener claras ciertas pautas:

1. Configuración y reutilización. Siempre hay que realizar las pruebas de la manera más configurable que se pueda, ya que, de este modo, simplemente realizando diferentes configuraciones, podemos ejecutar la prueba de manera más rápida en muchos entornos. No es necesario copiar y pegar la misma pruebas para diferentes entornos o desarrollos.

Además, es muy importante intentar reutilizar la mayor parte de los pasos de las pruebas y que no nos cueste, constantemente, el volver a escribirlas una y otra vez para pasar por la misma pantalla o hacer una acción en concreto. 

2. Independiente. Dentro de esta agilidad que buscamos, tenemos un, pero, que es que, si hacemos las pruebas de manera que se tengan que realizar una detrás de otra, en el caso de que falle la primera, posiblemente estemos haciendo que el resto de pruebas no se ejecuten, por lo tanto es importante que las pruebas sean lo más independientes posibles, para que se ejecuten con un principio y un fin sin afectar al resultado de la prueba posterior.

3. Datos de prueba. Es importante la realización de una buena batería de datos de prueba. De esta manera, evitaremos muchos errores que nos podemos encontrar en la ejecución, por ejemplo, si un usuario no tiene el producto que es necesario para la prueba, o por lo que sea, no llega a hacer login.
Siempre hay que hacer una tabla por cada caso de prueba, observando que necesidades de usuario o datos se tienen y se deben de colocar en un cuadro de “requisitos previos de ejecución” para el caso de prueba en particular.

No debemos de olvidarnos que, con la nueva ley de protección de datos, todo lo que utilicemos debe de haberse generado de manera sintética o estar ofuscado, para no tener ningún problema.
Realizar este tipo de labor es muy arduo y costoso, pero nos evitará muchos quebraderos de cabeza al lanzar las pruebas.

4. Entorno de prueba estable y adecuado. No debemos de olvidarnos del entorno de pruebas, algo que es, podría decir, lo más importante de cara a unas pruebas garantizadas y de calidad.
Si hecho la vista atrás, en muchas ocasiones me encuentro con que no se da la suficiente importancia a este entorno, ocasionándonos graves problemas y reproches posteriores porque se nos habían escapado cosas. Evidentemente, si el entorno no es el adecuado, en muchas ocasiones pasa esto.

La cantidad de tiempo y agilidad que se gana con un entorno de pruebas preparado y funcionando correctamente es total. Si nos ponemos en un escenario en el que hemos dedicado mucho tiempo a realizar las pruebas, a preparar el juego de datos, a tener al equipo pendiente y al lanzarlas, el entorno no está preparado para asumir estas pruebas, el resultado es más que desolador y la pérdida de tiempo, importante.

Si queremos que todo esté disponible y podamos probar el conjunto completo de lo que estemos a punto de asegurar, realizando, por ejemplo, unas pruebas de integración, debemos de recurrir a la virtualización, que simulará ciertos componentes o sistemas que aún no están disponibles o desarrollados completamente.
Personalmente, creo que un entorno bien gestionado y montado, nos va a proporcionar una estabilidad mucho mayor una vez que pongamos en producción el software.

5. Implantación de todos los datos. No debemos de dejar casos de prueba con credenciales cerradas y que no se puedan ejecutar. Esto es tan sumamente importante como que si por un casual, la persona que debe de lanzar las pruebas y tiene todas esas credenciales ocultas o guardadas, no está, se pone enfermo o simplemente se va de la empresa de manera inesperada, toda la batería de pruebas no valdrá para nada.

En muchas ocasiones las empresas piensas que no necesitan procesos, que no necesitan unificar, ni trabajar por un camino único y de la misma manera, pero esto es totalmente incorrecto. Siempre se necesita procedimentar e introducir metodologías para que todo funcione a la perfección y no nos desviemos, ni por un instante, del camino que tenemos marcado y que nos lleva al éxito.
Siguiente Publicación

Comentarios