05. Gestión de Pruebas
La calidad del software no es como el azúcar para el café.
No funciona solamente como agregar "dos cucharaditas" de calidad al final del desarrollo y luego tener un producto "dulce" y de alta calidad. Si las pruebas se dejan para el final, significa que solo hay tiempo para las validaciones que corroboran que el software funciona. Muchas veces, los diagramas de Gantt muestran “probar” como una tarea a realizar en los últimos dos días, pero ¿y si alguien encontrara errores graves en esa corta instancia de tiempo? Scott Barber dice algo al respecto, específicamente relacionado con las pruebas de performance, pero podría extrapolarse a las pruebas en general:
"Hacer las pruebas al final de un proyecto es como pedir un análisis de sangre cuando el paciente ya está muerto".
Las pruebas y el desarrollo deben considerarse dos tareas de la misma índole y comenzar juntas. De hecho, las pruebas deben comenzar incluso antes que cualquier otra actividad, por lo que al momento de empezar a desarrollar, ya se ha decidido cómo ejecutar las pruebas. Esto es especialmente útil para prevenir errores, no solo para detectarlos.
Respecto a la gestión de pruebas, está estrechamente relacionada con la gestión de proyectos, porque las pruebas están muy conectadas con varias áreas, por lo tanto, todo debe planificarse de forma bien coordinada.
Algunos preguntas útiles para saber si un equipo está gestionando las pruebas de forma proactiva podrían ser:
- ¿Cuáles son los criterios de aceptación? ¿Cuándo damos el visto bueno para entregar la nueva funcionalidad del producto al cliente?
- ¿Qué tan bien estamos probando el software? ¿Estamos usando algún tipo de métrica para la cobertura, o realmente no tenemos idea?
- ¿Quién prueba qué?
- ¿Cuántas pruebas necesitamos todavía? ¿Cómo va todo?
- ¿Qué riesgos existen y cuál es el más importante a mitigar?
- ¿El producto que estamos construyendo es de calidad? ¿Cubre las necesidades del cliente?
- ¿Estamos considerando todos los aspectos de calidad del producto que realmente importan al usuario y al negocio (rendimiento, confiabilidad, facilidad de uso, seguridad, etc.)?
La lista de problemas relacionados con la gestión de riesgos y el conocimiento de un equipo sobre la calidad del producto podría ser muy extensa.
En testing continuo, las actividades de prueba deben considerarse desde el primer día del proyecto y una vez finalice. Las pruebas de software no deben dejarse para cuando haya tiempo libre o de forma aislada. Debe planificarse y ejecutarse deliberadamente, con el fin de cumplir con los objetivos comerciales.