En la validación de una nueva funcionalidad, nadie cuestiona que las pruebas manuales son la mejor opción para la detección de defectos. Ahora bien, lo que tampoco nadie puede cuestionar es que son lentas y, por tanto, repetirlas resulta bastante caro tanto a nivel económico como temporal.
Además, según va pasando el tiempo, se van incorporando nuevas funcionalidades a las aplicaciones y hay más características que probar.
Como se dispone de un tiempo y de unos recursos limitados para probar, solo se prueban las nuevas funcionalidades. Pero, ¿qué ocurre si el desarrollo de una nueva característica provoca un fallo en partes de la aplicación que ya habían sido desarrolladas y probadas y que anteriormente funcionaban de manera correcta? Es necesario realizar pruebas de regresión. Precisamente para esto sirven las pruebas automatizadas.
Crear pruebas automatizadas permite ampliar la cobertura de pruebas, detectar los defectos antes y focalizar las pruebas manuales en lo que realmente interesa.
Las principales ventajas de la automatización de pruebas son:
- Se elimina el trabajo repetitivo, que se transmite al ordenador.
- Se reducen los errores, ya que cada repetición será exactamente igual cada vez que se ejecute, eliminándose el error humano. Esto aumenta la fiabilidad del proceso de pruebas.
- Permiten probar tanto las partes visibles como las partes no visibles del código.
- Permiten a los usuarios finales verificar que el software funciona como debe.
- Su ejecución es perceptiblemente más rápida y se pueden ejecutar más pruebas en menos tiempo.
Pero también presenta algunos inconvenientes:
- La dependencia de personal especializado, se incrementa.
- El retorno de la inversión se manifiesta más a largo plazo.
- Especialización de los equipos de Test.
- Alta dependencia de herramientas de automatización.
Entonces, ¿automatizar o no automatizar?
Esta sencilla pregunta merece una profunda reflexión. Las respuestas pueden ir desde “Automatizar todo” a “No merece la pena automatizar nada”. La primera respuesta parece la más apropiada, pero difícil de conseguir, ya que implica mucho tiempo y demanda presupuesto. La segunda respuesta no es nunca apropiada. Entonces, ¿qué debemos automatizar?
Para tomar esta decisión, podemos buscar respuestas a estas cuestiones:
- ¿El trabajo que supone la automatización va a proporcionar beneficios en el futuro?
Si conlleva 10 horas automatizar una prueba que dura 2 minutos y que solo se va a ejecutar unas 10 veces en el futuro, puede que la automatización no sea una buena idea.
Las pruebas que se pueden automatizar de forma rápida y fácil son las mejores candidatas, mientras que las pruebas complejas cuya automatización lleva mucho tiempo no son generalmente una buena elección.
- ¿Va a cambiar mucho la funcionalidad a probar en el futuro?
Si hay una alta probabilidad de que la funcionalidad a probar sufra muchos cambios, esta no es una buena candidata para la automatización, porque requerirá mucho trabajo de mantenimiento.
- ¿Se utiliza frecuentemente la parte de la aplicación a probar?
En general, las partes más utilizadas de una aplicación no son buenas candidatas para la automatización debido a los costes de mantenimiento que pueden suponer si los usuarios quieren introducir cambios en ellas. No obstante, si la funcionalidad se usa a menudo y se mantiene estable, sí puede convertirse en una buena candidata para las pruebas automatizadas.
- ¿Se podrán detectar errores de regresión con las pruebas automatizadas?
Detectar errores en partes de la aplicación que no han sido modificadas es una de las razones principales para la creación de pruebas automatizadas. Naturalmente, los errores de regresión pueden encontrarse en cualquier parte, pero es más probable que se detecten en las partes centrales de la aplicación que son compartidas por distintas funcionalidades que tienen la misma lógica de negocio. En este caso, la mejor forma de actuar es crear un conjunto de pruebas unitarias automatizadas.
- ¿Cuántas versiones de software es necesario mantener?
Si solo se mantienen una o dos versiones de la aplicación en producción, la automatización es recomendable. Si se mantienen más, es conveniente centrarse en las pruebas manuales, pues los costes de mantenimiento pueden llegar a ser bastante altos.
- ¿Se trata de una funcionalidad crítica de la aplicación?
Las partes críticas de la aplicación deberían probarse cada vez que se realiza un pequeño cambio en la misma. Por tanto, son unas estupendas candidatas para la automatización (Smoke Test).
Conclusión
¿Automatizar o no automatizar? La mejor respuesta a este dilema es: “Depende”. Desde luego, es la mejor solución para las pruebas repetitivas que hay que realizar cada vez que se recibe una nueva versión de la aplicación, pero no siempre es posible. Por tanto, para tomar la decisión, habrá que tener en cuenta cuál es el coste y cuál es el beneficio de la automatización de las pruebas, sopesando, entre otros asuntos, el conocimiento de las herramientas a utilizar y el tiempo disponible para las pruebas.
Autor | Paloma Rodríguez – Ingeniera de test
me pueden decir cuales son los 2 procesos que no convienen ser automatizados???
Me gustaMe gusta
Pingback: ¿Cómo automatizar pruebas y no morir en el intento? | QA:news