En esta entrada vamos a hablar un poco de testing Automatizado. Este tipo de testing es una gran herramienta con muchos beneficios si se la utiliza con conciencia y siempre midiendo la relacion Costo/Beneficio.
Definición:
Tiene distintos significados para diferentes personas en diferentes contextos. Cuando hablamos de pruebas automatizadas nos estamos refiriendo a: un método de ejecutar una prueba sin intervención humana, que de lo contrario lo requeriría. En términos prácticos puede significar una prueba de nUnit, una prueba de GUI usando una herramienta de prueba comercial o una prueba escrita con lenguaje de scripting interno de una aplicación.
La tecnología no es la principal preocupación, el hecho de que se puede ejecutar la prueba de 100 % sin ninguna participación humana es la clave.
¿Porque Automatizar?
La principal razón es el tiempo y con las pruebas automatizadas se puede reducir el tiempo de las pruebas. Además al automatizar las actividades comunes que no requieren de inteligencia humana, los testers reales pueden dedicar mayor tiempo a pruebas más críticas y caminos más elaborados dejando los caminos básicos a las pruebas automatizadas.
¿Cuales son los beneficios de las pruebas automatizadas?
- Rapidez: Las herramientas de testing automatizado corren las pruebas significativamente más rápido que los testers humanos.
- Fiabilidad: Las pruebas ejecutan precisamente las mismas operaciones cada vez que se ejecutan, eliminando el error humano.
- Repetición: Se puede testear como reacciona el soft bajo repetidas ejecuciones de las mismas operaciones.
- Programable: Se pueden programar pruebas sofisticadas y complejas que muestren información oculta de la aplicación.
- Reusabilidad: Se pueden rehusar los scripts con pruebas automatizadas, las funciones, etc…
¿Qué casos de prueba debería automatizar?
- Casos de prueba que se deban correr en cada nueva versión de la aplicación (Sanity Testing)
- Casos de Prueba que utilicen distintos datos de prueba par alas mismas acciones. (Data Driven Testing)
- Funcionalidades críticas de la aplicación (Smoke Testing)
- Funcionalidades que no cambiaran en un periodo de tiempo relativamente corto
- Escenarios de Pruebas de Performance
¿Cuales son las desventajas de las herramientas de automatización?
Las herramientas de testing automatizado no pueden medir la usabilidad de una aplicación.
Se requieren conocimientos en programación para poder adaptar los scripts automatizados a los requerimientos.
El mantenimiento de los scripts puede ser muy costoso.
Testing Automatizado vs. Testing Manual
Testing Automatizado | Testing Manual |
Pros:
|
Pros:
|
Contras:
|
Contras:
|
Otras Consideraciones:
|
Me parece muy buenas estas referencias; Soy Tester pero me falta mucho conocimiento en herramientas de automatización, saber cuando es recomendable el aplicar estas pruebas, cuales son los riesgos. ¿Existge algun curso online al respecto?. Gracias por la informacion.
Me gustaMe gusta
Marcela,
No conozco ningún curso OnLine como para recomendarte, pero puedes encontrar muchos buscando en google.
En la actualidad puedes encontrar muchas guias en la red (las mejores estan en ingles) y auto-capacitarte con las mismas…
Saludos,
José
Me gustaMe gusta
Hola:
Estoy automatizando una aplicación web. Las herramientas que utilizamos son selenium y junit.
Tengo bastante experiencia con pruebas funcionales. Sin embargo en automatización casi acabo de empezar. He conseguido automatizar una prueba que lanzo con eclipse, exportando la prueba desde selenium IDE.
Mi pregunta no es técnica. Aunque hay cientos de blogs, foros etc… es esta una de las páginas donde me suelo enterar mejor de las respuestas que dais.
El grupo de QA de mi empresa me ha dicho que es conveniente automatizar lo máximo en la aplicación.
Aquí se sigue la metodología agil. Hemos acabado el primer sprint y viendo este articulo no me acabo de aclarar con esta duda.
¿He de crearme una prueba automática para cada link de la aplicación?. ¿Y una para cada boton, etc…?
Para formularios, etc… lo tengo claro pero hay links del tipo «texto legal», «Politica de privacidad» que no se si es conveniente automatizar y separar cada uno de los cuales.
Gracias por su respuesta en cualquier caso
Me gustaMe gusta
Enrique,
Me alegra que las respuestas de este blog sean de ayuda.
En cuanto a tu pregunta, desde mi punto de vista, existe una gran confusión en cuanto a las pruebas automatizadas, donde muchas veces se tiene como premisa «Automatizar todo» como la mejor manera de implementar las pruebas automatizables, cuando en realidad se debe realizar un análisis más preciso de que necesito automatizar y que no ya que si bien suena muy bien la idea de automatizar absolutamente todo, el llevarlo a la práctica puede resultar muy costoso (creación y mantenimiento de scripts) y el beneficio que obtendríamos sería mínimo en algunos casos. Aplicando esta lógica a la metodología ágil, donde un sprint puede durar entre 1 semana a 3 semanas, el tiempo que puedas invertir en la creación/mantenimiento de los scripts puede resultar más que costoso no teniendo tiempo para dedicar a pruebas exploratorias donde las pruebas automatizadas pueden dejar importantes bugs sin descubrir.
En cuanto si es necesario automatizar la verificación de cada link, yo te diría que verifiques el costo/beneficio que te puede traer tal automatización y el riesgo/impacto que tendría en el negocio que un determinado link/funcionalidad no realice las acciones que debería. Analiza en conjunto con el área de desarrollo las probabilidades de que tal o cual link cambie en futuras versiones y las probabilidades de que una funcionalidad se vea afectada de versión en versión.
No dudes en preguntar cualquier otra duda que seguramente yo o algún otro lector pueda ayudar a resolver tus inconvenientes.
Saludos,
José
Me gustaMe gusta