Testing de Software (parte 2)

Ya revisamos algunas pruebas en la Parte 1 de la entrada.

Continuando con pruebas existentes en el ambiente del Test de Software vamos a seguir con la lista:

Prueba de regresión

El último test mencionado en la entrada anterior hacía referencia a las pruebas de humo. Cuando se configuran pruebas dentro de Pipelines CI/CD, dijimos que ejecutarán pruebas de humo en casi todas las confirmaciones, y como complemento de esas configuraciones, es necesario agregar #pruebas de regresión que pueden ejecutarse a intervalos establecidos o en funciones grandes para garantizar una integración continua sin problemas; esto dado que este tipo de #testing esta orientado a verificar si alguna característica previamente funcional ha cambiado o se ha roto repentinamente.

Pruebas de Carga/Performance

En este caso lo que se busca probar es el rendimiento de un nuevo desarrollo ante una determinada cantidad de carga/tráfico/sesiones; y cual es su respuesta ante la variabilidad de estas condiciones.

Durante esta etapa, es de mucha utilidad probar determinadas situaciones de incremento de tráfico controlado para conocer los límites que la plataforma puede soportar, como también simular el incremento repentino para entender como respondería por ejemplo ante un estampido de conexiones provocadas por DDOS.

Pruebas de Seguridad

Durante estas pruebas, se llevan a cargo ejecuciones controladas donde se busca vulnerar el sistema. Este tipo de test, también llamado Penetration Test, busca controlar los niveles de solidez en materia de seguridad y protección de la información.

Este tipo de pruebas, también es alterada debido a la adopción de #DevSecOps, donde se busca que el aseguramiento de lo que se va desarrollando se haga desde etapas tempranas del desarrollo, controlando librerías, frameworks, llamadas, y todo tipo de cuestiones a medida que se va creando una aplicación, para evitar hacer los controles todos juntos al final; esto da como resultado un software de código mas limpio, con mejores tiempos de entrega y con mayor seguridad.

Testing free icon

Ingeniería del Caos

Estas pruebas, fueron desarrolladas por el equipo ingeniería de Netflix; y consiste en la prueba sobre todo el sistema para entender como se comporta ante fallos inesperados que son generados de forma random para provocar situaciones de desastres.

Esta disciplina nos permite conocer el comportamiento de la aplicación ante ataques, fallas, errores humanos, outages de los datacenters, etc. Cada prueba busca entender como afecta a la aplicación productiva y crear una acción correctiva de manera de ir creando un sistema resiliente capaz de soportar situaciones imprevistas.

La herramienta principalmente conocida para estas pruebas es Chaos Monkey.

Conclusión

Repasamos algunos de los conceptos mas estándares del ciclo de pruebas de software. En la actualidad, se busca incorporar el #testing dentro del esquema #DevOps, como mencionamos en alguna nota posterior, ya existe el término de TestOps y es cada día de mayor importancia el enfoque de agilidad llevado a las pruebas.