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.

0 Comentarios