Sin duda, embarcarse en un proceso de automatización de pruebas es una inversión a largo plazo, siempre que se piense en ello de antemano y se haga una selección. No es útil automatizarlo todo, ni se debe automatizar todo. En realidad, las pruebas automatizadas, aunque bastante satisfactorias, no bastan por sí solas para proporcionar una evaluación completa y pertinente de una aplicación. Es necesario combinar pruebas manuales y automatizadas para garantizar la calidad del desarrollo de aplicaciones web o móviles y obtener así un rendimiento óptimo de la inversión. Pero, ¿cómo saber qué pruebas deben ejecutarse manualmente y cuáles automáticamente? Considerando cuatro criterios: frecuencia, criticidad, cobertura y complejidad.
Es fundamental automatizar las pruebas más recurrentes y repetitivas, es decir, las que se ejecutarán en cada despliegue. Por lo general, se trata de pruebas de no regresión y pruebas de aceptación. La pregunta que hay que hacerse es: cuando entregue mi aplicación, ¿qué debo probar cada vez? Las pruebas que surgen con más frecuencia son las que deberían automatizarse de forma prioritaria para ahorrar un tiempo considerable.
Es pertinente orientar las pruebas funcionales que se refieren a las vías y funcionalidades críticas, es decir, las que tienen un interés para la empresa, ya sea financiero, jurídico o de imagen. Por ejemplo, en el caso de un sitio de comercio electrónico, si una página de pago no funciona, el usuario no podrá completar su compra y esto tendrá un impacto directo en la facturación de la empresa. Por lo tanto, el retorno de la inversión es más importante en este caso concreto.
También hay que pensar en la cobertura de las pruebas, que es cada vez más amplia con la multiplicación de canales. Si tiene que realizar pruebas en varios navegadores (Chrome, Firefox, Safari, IE), en varios dispositivos (smartphone, tableta, ordenador), esto aumenta rápidamente el número de ejecuciones a realizar y la automatización puede ahorrar una cantidad considerable de tiempo.
Algunas pruebas son más difíciles de automatizar que otras, porque son técnicamente complejas, con muchas acciones que realizar, y por lo tanto requieren más tiempo de desarrollo y mantenimiento. En la mayoría de los casos, al iniciarse en la automatización, es mejor favorecer las pruebas sencillas y rápidas de ejecutar, que permiten identificar rápidamente los errores críticos. Esto no impide la automatización de casos más complejos más adelante, que utilizarán los casos existentes para generar ejecuciones más largas y específicas.
Por el contrario, algunas pruebas no son aptas para la automatización, como las relativas a las características evolutivas, pero esto será objeto de un futuro artículo...