Pruebas ágiles


Las pruebas ágiles son una práctica de prueba de software que sigue los principios del desarrollo de software ágil . Las pruebas ágiles involucran a todos los miembros de un equipo ágil multifuncional, con experiencia especial aportada por los probadores, para garantizar la entrega del valor comercial deseado por el cliente a intervalos frecuentes, trabajando a un ritmo sostenible. La especificación por ejemplo se utiliza para capturar ejemplos de comportamiento deseado y no deseado y guiar la codificación.

El desarrollo ágil reconoce que las pruebas no son una fase separada, sino una parte integral del desarrollo de software, junto con la codificación. Los equipos ágiles utilizan un enfoque de "equipo completo" para "incorporar calidad" al producto de software. Los probadores en equipos ágiles brindan su experiencia para obtener ejemplos del comportamiento deseado de los clientes, colaborando con el equipo de desarrollo para convertirlos en especificaciones ejecutables que guían la codificación. Las pruebas y la codificación se realizan de forma incremental e interactiva, construyendo cada función hasta que proporcione suficiente valor para lanzar a producción. Las pruebas ágiles cubren todos los tipos de pruebas. Los cuadrantes de pruebas ágiles proporcionan una taxonomía útil para ayudar a los equipos a identificar y planificar las pruebas necesarias. El modelo de Agile Testing Quadrants fue descrito originalmente por Brian Marick, [1]y fue popularizado por Lisa Crispin y Janet Gregory en su libro Agile Testing: A Practical Guide for Testers and Agile Teams . [2] [3] Coloca diferentes tipos de pruebas en dos ejes: Orientación a la tecnología frente a Orientación al negocio, y Programación de soporte frente a Producto crítico. [1]

Las metodologías de prueba tradicionales (a menudo empleadas en el modelo Waterfall de desarrollo de software ) generalmente implican un proceso de dos equipos y dos fases en el que el equipo de desarrollo construye el producto a la perfección. El producto de software se entrega tarde en el ciclo de vida de desarrollo de software, momento en el que el equipo de prueba se esfuerza por encontrar la mayor cantidad posible de errores. A diferencia de estas metodologías tradicionales, las pruebas ágiles se centran en reparar las fallas de inmediato, en lugar de esperar al final del proyecto. Cuando las pruebas se realizan al final de un proyecto, a veces se pueden sacrificar en términos de duración y calidad para cumplir con cronogramas críticos y restricciones presupuestarias. [4]Se espera que los costos disminuyan a medida que disminuye el tiempo entre el desarrollo y la retroalimentación de las pruebas. [4] [5] Con ciclos de retroalimentación más breves, las correcciones de errores y las reelaboraciones requieren menos tiempo, ya que los desarrolladores dedican mucho menos tiempo a volver a interactuar con el contexto del código a medida que avanzan hacia nuevos problemas y proyectos. [4]

En el "Informe mundial de prácticas de prueba de software 2015 - 2016", [6] ISTQB descubrió que la popularidad de las metodologías ágiles está aumentando significativamente, lo que muestra la necesidad de procesos y técnicas de prueba ágiles. Están proporcionando una extensión Agile Tester para su certificación. [7]

A medida que las empresas crecen, los equipos de pruebas ágiles a menudo confían en herramientas de prueba de software para resolver desafíos que, en última instancia, pueden acelerar la publicación de comentarios para asegurarse. [8] La mayoría de los equipos buscan funciones de colaboración, informes automatizados o personalizados y encontrar formas de evitar esfuerzos repetidos. La elección de la herramienta adecuada dependerá de los requerimientos de cada equipo. Al combinarse con otras herramientas de desarrollo de ciclo de vida ágil, las herramientas de prueba ágiles pueden brindar resultados efectivos al coexistir en entornos integrados. Tal es el caso de Atlassian Marketplace y Microsoft Visual Studio. [9]

Algunas herramientas de gestión de pruebas admiten las pruebas ágiles al involucrar a los equipos antes en el SDLC para crear continuamente escenarios de prueba a medida que evolucionan las historias. [10] Los equipos a menudo buscan una solución que pueda ofrecer una combinación de pruebas automáticas y manuales . [11]