Parte de una serie sobre |
Desarrollo de software |
---|
Las pruebas ágiles son una práctica de pruebas de software que sigue los principios del desarrollo ágil de software . Las pruebas ágiles involucran a todos los miembros de un equipo ágil multifuncional, con experiencia especial aportada por los evaluadores, para garantizar la entrega del valor comercial deseado por el cliente a intervalos frecuentes, trabajando a un ritmo sostenible. La especificación mediante ejemplos 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 "integrar la calidad" en el producto de software. Los evaluadores de los equipos ágiles prestan su experiencia para obtener ejemplos de comportamiento deseado de los clientes, colaborando con el equipo de desarrollo para convertirlos en especificaciones ejecutables que guíen la codificación. Las pruebas y la codificación se realizan de forma incremental e interactiva, desarrollando cada característica hasta que brinde suficiente valor para lanzarla 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 los cuadrantes de pruebas ágiles 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: orientadas a la tecnología frente a orientadas al negocio y programación de soporte frente a crítica del producto. [1]
Las metodologías de prueba tradicionales (que suelen emplearse en el modelo de desarrollo de software en cascada ) suelen implicar un proceso de dos equipos y dos fases en el que el equipo de desarrollo construye el producto lo más cerca posible de la perfección. El producto de software se entrega al final del ciclo de vida del desarrollo del software , momento en el que el equipo de prueba se esfuerza por encontrar tantos errores como sea posible. A diferencia de estas metodologías tradicionales, las pruebas ágiles se centran en reparar los fallos de inmediato, en lugar de esperar al final del proyecto. Cuando las pruebas se realizan al final de un proyecto, a veces se puede sacrificar su duración y calidad para cumplir con los cronogramas críticos y las 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 cortos, las correcciones de errores y las reelaboraciones requieren menos tiempo, ya que los desarrolladores pasan mucho menos tiempo volviendo a interactuar con el contexto del código a medida que avanzan hacia nuevos problemas y proyectos. [4]
En el informe "Worldwide Software Testing Practices Report 2015 - 2016", [6] ISTQB descubrió que la popularidad de las metodologías ágiles está aumentando significativamente, lo que demuestra la necesidad de procesos y técnicas de prueba ágiles. Están proporcionando una extensión Agile Tester a su certificación. [7]
A medida que las empresas crecen, los equipos de pruebas ágiles a menudo dependen de herramientas de prueba de software para resolver desafíos que, en última instancia, pueden acelerar la publicación de comentarios y garantizar que [8] la mayoría de los equipos buscan funciones de colaboración, informes automatizados o personalizados y formas de evitar esfuerzos repetidos. La elección de la herramienta adecuada dependerá de los requisitos de cada equipo. Al combinarse con otras herramientas de desarrollo del ciclo de vida ágil, las herramientas de prueba ágil pueden ofrecer 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 respaldan las pruebas ágiles al involucrar a los equipos en una etapa temprana del ciclo de vida del desarrollo de software (SDLC) para crear continuamente escenarios de prueba a medida que las historias evolucionan. [10] Los equipos a menudo buscan una solución que pueda ofrecer una combinación de pruebas automatizadas y manuales . [11]