Mejores prácticas de testing para equipos ágiles: La pirámide de automatización
Imagen de StockSnap en Pixabay

La automatización de pruebas y el desarrollo ágil de software van de la mano, pero a menudo hablar de automatización es más fácil que ponerla en práctica. La mayoría de los desarrolladores reconocen los beneficios de la automatización de pruebas: acelera las pruebas, reduce los costos, aumenta la cobertura, etc. Pero en muchos casos no logran superar la inversión inicial requerida para comenzar.

Al igual que los hombres de las cavernas de esta caricatura, muchos equipos se atascan al usar métodos de prueba menos eficientes porque piensan que no tienen tiempo para implementar cambios, cuando en realidad, termina siendo un problema que empeora aún más la situación. ¡No caiga en este mal hábito!

¡Hoy compartimos una de nuestras mejores prácticas de testing para equipos ágiles!

Ahora bien, ¿cómo empezamos?, ¿cómo saber en qué áreas enfocarnos?, ¿qué casos de prueba deben automatizarse? 

En el desarrollo de software no ágil, muchas personas terminan cayendo inadvertidamente en el “anti-patrón de cono de helado” para realizar pruebas, al poner mayor énfasis en la automatización en el nivel de la interfaz de usuario.

En Abstracta, nos orientamos al enfoque que da la vuelta al cono de helado. Estamos de acuerdo con el enfoque popularizado por Mike Cohn, la pirámide de automatización de pruebas ágiles, que proporciona un máximo rendimiento a su inversión en automatización, mejorando el ROI de la automatización y garantizando que recibirá los mayores beneficios de la automatización.

Cuando la mayoría de nuestros esfuerzos se centran en la automatización a nivel de la interfaz de usuario, el objetivo es encontrar bugs; mientras que con la pirámide ágil, la idea es prevenirlos.

En la siguiente gráfica puede visualizar las diferencias entre los dos enfoques de automatización:

Pirámide de Automatización de Pruebas de Mike Cohn

Nivel Inicial: Pruebas Unitarias

Claramente en la pirámide (como parte de las mejores prácticas de prueba para equipos ágiles), la mayoría de las pruebas deben tener lugar en la etapa de desarrollo, ejecutando pruebas unitarias después de cada compilación. Estas pruebas son las más fáciles, económicas y rápidas de completar y son un aspecto importante del desarrollo basado en pruebas.

Ejecutar más pruebas en un nivel más bajo nos permite “verificar nuestro trabajo” a medida que avanzamos, obteniendo retroalimentación de inmediato y permitiéndonos saber exactamente dónde están los errores cuando es mucho más difícil encontrarlos. Aquí, los errores también tendrán una vida útil más corta, habiendo sido identificados y eliminados en menos de un minuto, quizás.

Durante las pruebas de la interfaz de usuario, los errores habrán vivido mucho más tiempo y lucharán más porque han vivido allí muy cómodamente durante un período de tiempo más largo (quizás incluso un par de días).

Nivel intermedio: API/Integración/Pruebas de componentes

Una vez que ejecutamos todas las pruebas unitarias y pasan, podemos continuar con la fase de pruebas de API / integración / componentes. Se ejecutan pruebas de integración para asegurarse de que todos los componentes juntos funcionen correctamente. Aquí es donde podemos probar la mayoría de la lógica y los procesos comerciales sin pasar por la interfaz de usuario. Es mejor automatizar aquí tanto como sea posible. Si tiene que decidir si automatizar en este nivel o en el nivel de la interfaz de usuario, aquí tendrá menos problemas, un mantenimiento más sencillo, una ejecución de prueba más rápida (lo que significa encontrar errores antes y disminuir su vida útil) y podrá probar la lógica de su sistema. Estas pruebas son más lentas y complejas que las pruebas unitarias, pero aún son más rápidas y menos frágiles que las pruebas de IU.

Nivel superior: Pruebas de UI

Las últimas y menos ejecutadas son las pruebas de interfaz de usuario (UI). Es mejor ejecutar la menor cantidad posible, ya que son costosas, más difíciles de preparar y mantener y requieren mucho tiempo. Aquí solo deseamos asegurarnos de que la interfaz de usuario funcione correctamente, sabiendo que todos los demás aspectos del sistema ya deberían haber sido probados. Automatice solo las pruebas más críticas, de un extremo a otro, con un flujo que comienza desde el inicio de sesión del usuario y termina con su acción final, como el mensaje de éxito de la transacción.

También es útil centrarse en aspectos relacionados con los navegadores o la interfaz de usuario. Tenga cuidado con estas pruebas, ya que es más probable que proporcionen falsos negativos y falsos positivos. Después de ejecutar las pruebas de IU, se pueden realizar pruebas manuales y exploratorias (como se muestra en la forma de la esfera sobre la pirámide). 

Como puede ver, el enfoque piramidal es una forma más sólida, más beneficiosa y rentable de implementar la automatización de pruebas que centrarse en las pruebas de interfaz gráfica de usuario (GUI) automatizadas y seguir inadvertidamente el “anti-patrón de cono de helado”.

La pirámide proporciona una base sólida en la fase de pruebas unitarias, a partir de la cual se pueden construir más pruebas en las fases de integración e IU, mientras que el enfoque del cono de helado es más “pesado en la parte superior” y menos estable.

⚠ Para destacarse en el mundo del desarrollo ágil, es imperativo seguir la pirámide de pruebas de automatización para producir software de la mejor calidad posible.

Le recomendamos no quedarse solo con nuestra opinión sobre la pirámide de automatización como una buena práctica de testing para equipos ágiles, pues incluso testers de Google dicen que este es el mejor método.

¿Ha utilizado previamente la pirámide de automatización ⚙? ¡Déjenos sus impresiones sobre este tema en los comentarios!

E-book gratuito sobre automatización

Si quiere aprender más sobre este tema, le invitamos a descargar hoy nuestro último e-book 📘: “Una completa introducción a la automatización de pruebas funcionales”.

E-book con una completa introducción a la automatización de pruebas funcionales

En este e-book de 50 páginas podrá descubrir:

  • Valor comercial y de TI en la automatización de pruebas, así como su ROI potencial.
  • Qué, dónde, cómo y cuándo la automatización tiene más sentido.
  • Prácticas y enfoques líderes en la industria que brindan una máxima efectividad.

👉 ¿Quiere obtener más información sobre nuestro servicio de automatización de pruebas? Conozca más detalles aquí o agende ahora una consultoría gratuita y personalizada de 30 minutos con nuestros expertos.


Otro contenido relacionado

Automatizar pruebas de software: ¿cuándo y por qué?

¿Cómo optimizar los costos de las pruebas de software?