Nombre

Automatizar las pruebas para poder garantizar que el producto mantiene el comportamiento deseado cuando se realizan cambios

Descripción

Un ejemplo de situación con la anti-práctica es el siguiente: el equipo gasta mucho tiempo en realizar actividades repetitivas o muy estructuradas que podrían ser automatizadas.

Las actividades de pruebas son en general muy atractivas para ser automatizadas pues el esfuerzo invertido en ellas puede rentabilizarse en la ejecución frecuente de pruebas de regresión (pruebas que se repiten después de hacer un cambio para asegurar que no se ha estropeado algún comportamiento ya implementado en el producto). Cuando un producto está mejorándose continuamente y se hacen entregas frecuentes al cliente, todo este esfuerzo puede incluso llegar a ser valorado negativamente por el cliente si se estropean funcionalidades ya disponibles antes de la última entrega. La automatización está en bastante sintonía con el agilismo, sin embargo, conseguir la infraestructura de soporte para automatizar procesos (herramientas y otros recursos), debe ser evaluado en términos de la inversión y tiempo que se requerirá para ponerla en aplicación y del ahorro o mejora que se conseguirá. La automatización de pruebas es una de las prácticas que requiere mayor preparación y su rentabilización se consigue a mediano y largo plazo. El testing es un área muy amplia, existiendo diversidad de tipos de pruebas (unitarias, de integración, de aceptación, de rendimiento, etc.), multitud de herramientas y muchísimas estrategias para implantar el testeo automatizado en un determinado contexto. Por otra parte, cada prueba definida puede ser aplicada con muchísimas (o infinitas) combinaciones de valores que intervienen en el escenario asociado. El diseño de la prueba debería considerar las instanciaciones más interesantes para ser aplicadas. Así pues, en general, no será posible automatizar todo, ni en todos los tipos de pruebas, ni en todas las combinaciones de valores para cada prueba, con lo cual habrá que ser selectivo también en cuanto a qué pruebas se automatizarán. Sin embargo, esta elección tampoco no es sencilla, el criterio general sería automatizar aquello que tenga mayor probabilidad de fallar o para lo cual un fallo pueda tener consecuencias importantes para el usuario.

 

Ver mapa de prácticas ágiles