La automatización de pruebas usa frameworks para crear scripts que se ejecutan pruebas automatizadas de software.
Estas pruebas automatizadas pueden hacerse sobre aplicaciones web,aplicaciones de escritorio,apps de smarphones,APIs ,métodos de clases o incluso servicios y sistemas operativos.
Las pruebas automatizadas se diferencian de las manuales en que las primeras son ejecutadas por una aplicación que ejecuta ,supervisa las pruebas y genera un informe.
Las manuales las hace un tester de manera manual y genera el el informe.
Las pruebas automatizadas se usan sobre todo para las pruebas de regresión buscando defectos en la aplicación.
Las pruebas de regresión son repetitivas y suelen tardar bastante por lo que para un tester es un suplicio y dejar de hacer otros trabajos por ellas por eso la automatización ayuda mucho al tester y al analista de QA al liberarlo de horas de trabajo.
¿Por qué automatizar?
Las principales razones para realizar automatización de pruebas son:
Tiempo
Se gana mucho tiempo realizando pruebas automatizadas ,se evita gastar tiempo en pruebas repetitivas que pueden ser automatizadas y se libera el tiempo del analista y tester para que puedan hacer otros trabajos.
Feedback diario
Las pruebas automatizadas suelen realizarse de noche y nos da un informe diario del estado de la aplicación en la que estamos trabajando.
Pruebas eficientes
Los resultados de las pruebas automatizadas son más eficientes que las manuales.
El líder de pruebas puede tomar una estrategia en la que pruebas repetitivas y más complejas se automaticen y otras pruebas las realicen los analistas y así la cobertura de las pruebas sera mayor.
La automatización te permite ahorrar tiempo ,dinero y recursos pero requiere invertir tiempo y dinero al principio.
Actualización y reutilización
Una de las mejores ventajas de los test de automatización es que son reutilizables,podemos utilizar acciones que se utilizan en distintas pantallas para realizar pruebas que tengan que pasar por secciones comunes.
Al principio se invierte mucho tiempo en crear un framework sobre el cual desarrollar las pruebas o tests pero luego tendremos una solución duradera,sólida y reutilizable que podrá ser utilizada en otros proyectos además que inicia el camino para una estandarización de la automatización de pruebas.
Consistencia
Las pruebas automatizadas ofrecen consistencia en la tarea de realizar las pruebas.Normalmente los test que se automatizan suelen ser aquellos que son tareas complejas o muy agotadoras.La automatización disminuye la tasa de error al poder ejecutarse a cualquier hora y las veces que haga falta sin que haya errores por cansancio cosa que le pasaría a un tester.
En el siguiente gráfico podremos comprobar el retorno de inversión cuando realizamos automatización de pruebas con respecto a ejecutar pruebas manuales a lo largo de los diferentes sprints:
Necesidades para la automatización
Entorno de pruebas
Se requiere un entorno de pruebas con la configuración y las funcionalidades necesarias para realizar los tests.Ademas necesitamos datos estáticos para asegurarnos que falla por la aplicación no por los datos.
Es muy importante tener este entorno estático donde los datos sean estáticos y no se cambien para poder automatizar sino la creación de los escenarios de prueba será muy complicada.
Documentación
Análisis funcional: Es fundamental para entender que es lo que necesita el cliente desde el punto de vista funcional.
Caso de uso:Tenemos que saber que se va a probar y que resultado se espera.Necesitamos conocer las entradas y las salidas esperadas en la funcionalidad que se va a probar ,si no se tiene esto es muy difícil automatizar por no decir imposible.
Historias de usuario bien definidas:las historias de usuario tienen que ser INVEST ,es decir bien redactadas que cumplan esas características para saber que necesitamos probar y automatizar.
Diagramas de flujo de la aplicación:Ayuda a tener claro una visión de la aplicación antes de crear el plan de pruebas o de automatizar una prueba.
Zeplin/Marvel: Esta herramienta nos permite comprobar que el diseño es correcto ,esto ayuda tanto a la parte manual como automatizada.
Identificadores en cada elemento
Para la automatización de pruebas podemos utilizar herramientas como Selenium,Cypress,Appium o Katalon pero también definir un identificador para poder encontrarlo en el DOM de la página y poder realizar acciones sobre él.
Es importante que los desarrolladores pongan identificadores a los elementos del front de una pagina web además que es buena práctica.
Ademas hay formas de encontrar esos elementos para automatizar utilizando expresiones XPath por ejemplo o CSS Selector que es algo muy habitual,.
También hay extensiones de navegadores como Chropath que nos permiten encontrar la expresión CSS selector o Xpath para detectar ese elemento y que al ejecutar el script grabado o test no muestre el desastroso fallo de objeto no existe o no encontrado .
Déjame un comentario indicándome si te gusto o algo que quieras aportar.
¡Sígueme en LinkedIn, Twitter, Facebook, Instagram y YouTube para ser parte de nuestra comunidad y aprender más sobre testing y QA.
Visitas: 23