Pruebas ágiles: descripción general

Agilees una metodología de desarrollo iterativa, donde las actividades de desarrollo y prueba son concurrentes. La prueba no es una fase separada; La codificación y las pruebas se realizan de forma interactiva e incremental, lo que da como resultado un producto final de calidad que cumple con los requisitos del cliente. Además, la integración continua da como resultado la eliminación temprana de defectos y, por lo tanto, ahorros de tiempo, esfuerzo y costos.

Manifiesto ágil

El Manifiesto Agile fue publicado por un equipo de desarrolladores de software en 2001, destacando la importancia del equipo de desarrollo, acomodando los requisitos cambiantes y la participación del cliente.

The Agile Manifesto is −

Estamos descubriendo mejores formas de desarrollar software haciéndolo y ayudando a otros a hacerlo. A través de este trabajo, hemos llegado a valorar:

  • Individuos e interacciones sobre procesos y herramientas.
  • Software de trabajo sobre documentación completa.
  • Colaboración con el cliente sobre negociación de contratos.
  • Responde al cambio sobre el siguiente plan.

Es decir, si bien hay valor en los elementos de la derecha, valoramos más los elementos de la izquierda.

¿Qué son las pruebas ágiles?

Agile Testing es una práctica de prueba de software que sigue los principios del desarrollo de software ágil.

Agile Testing involucra a todos los miembros del equipo del proyecto, con experiencia especial aportada por los probadores. Las pruebas no son una fase separada y están entrelazadas con todas las fases de desarrollo, como los requisitos, el diseño y la codificación y la generación de casos de prueba. Las pruebas se realizan simultáneamente a lo largo del ciclo de vida del desarrollo.

Además, con la participación de los probadores en todo el ciclo de vida del desarrollo junto con los miembros del equipo multifuncional, la contribución de los probadores a la construcción del software según los requisitos del cliente, con un mejor diseño y código, sería posible.

Agile Testing cubre todos los niveles de testing y todos los tipos de testing.

Pruebas ágiles vs. Prueba de cascada

En una metodología de desarrollo en cascada, las actividades del ciclo de vida del desarrollo ocurren en fases que son secuenciales. Por lo tanto, la prueba es una fase separada y se inicia solo después de la finalización de la fase de desarrollo.

A continuación se muestran los aspectos más destacados de las diferencias entre las pruebas ágiles y las pruebas en cascada:

Pruebas ágiles Prueba de cascada
La prueba no es una fase separada y ocurre al mismo tiempo que el desarrollo. La prueba es una fase separada. Todos los niveles y tipos de pruebas pueden comenzar solo después de la finalización del desarrollo.
Los probadores y desarrolladores trabajan juntos. Los probadores trabajan por separado de los desarrolladores.
Los evaluadores participan en la elaboración de requisitos. Esto ayuda a mapear los requisitos a los comportamientos en el escenario del mundo real y también a enmarcar los criterios de aceptación. Además, los casos de prueba de aceptación lógica estarían listos junto con los requisitos. Los probadores pueden no participar en la fase de requisitos.
Las pruebas de aceptación se realizan después de cada iteración y se buscan los comentarios de los clientes. Las pruebas de aceptación se realizan solo al final del proyecto.
Cada iteración completa sus propias pruebas, lo que permite implementar pruebas de regresión cada vez que se lanzan nuevas funciones o lógica. Las pruebas de regresión se pueden implementar solo después de completar el desarrollo.
Sin demoras entre la codificación y la prueba. Retrasos habituales entre la codificación y la prueba.
Prueba continua con niveles de prueba superpuestos. La prueba es una actividad cronometrada y los niveles de prueba no pueden superponerse.
Las pruebas son una buena práctica. Las pruebas a menudo se pasan por alto.

Principios de prueba ágiles

Los principios de las pruebas ágiles son:

  • Testing moves the project forward- Las pruebas continuas son la única forma de garantizar un progreso continuo. Agile Testing proporciona retroalimentación de forma continua y el producto final cumple con las demandas comerciales.

  • Testing is not a phase- Pruebas de equipo ágiles junto con el equipo de desarrollo para garantizar que las funciones implementadas durante una iteración determinada se realicen. Las pruebas no se guardan para una fase posterior.

  • Everyone tests- En las pruebas ágiles, todo el equipo, incluidos analistas, desarrolladores y evaluadores, prueba la aplicación. Después de cada iteración, incluso el cliente realiza la prueba de aceptación del usuario.

  • Shortening Feedback Loops- En Agile Testing, el equipo empresarial llega a conocer el desarrollo del producto para todas y cada una de las iteraciones. Están involucrados en cada iteración. La retroalimentación continua acorta el tiempo de respuesta de la retroalimentación y, por lo tanto, el costo involucrado en solucionarlo es menor.

  • Keep the Code Clean- Los defectos se corrigen a medida que se plantean dentro de la misma iteración. Esto asegura un código limpio en cualquier hito del desarrollo.

  • Lightweight Documentation - En lugar de documentación de prueba completa, probadores ágiles -

    • Utilice listas de verificación reutilizables para sugerir pruebas.

    • Concéntrese en la esencia de la prueba en lugar de los detalles incidentales.

    • Utilice estilos / herramientas de documentación ligeros.

    • Capture ideas de prueba en cartas para pruebas exploratorias.

    • Aproveche los documentos para múltiples propósitos.

  • Leveraging one test artifact for manual and automated tests- El mismo artefacto de secuencia de comandos de prueba se puede utilizar para pruebas manuales y como entrada para pruebas automatizadas. Esto elimina el requisito de documentación de prueba manual y luego un script de prueba de automatización equivalente.

  • “Done Done,” not just done - En Agile, se dice que una función no se realiza después del desarrollo, sino después del desarrollo y las pruebas.

  • Test-Last vs. Test Driven- Los casos de prueba se escriben junto con los requisitos. Por lo tanto, el desarrollo puede impulsarse mediante pruebas. Este enfoque se denomina Desarrollo impulsado por pruebas (TDD) y Desarrollo impulsado por pruebas de aceptación (ATDD). Esto contrasta con las pruebas como última fase en Waterfall Testing.

Actividades de prueba ágiles

Las actividades de pruebas ágiles a nivel de proyecto son:

  • Planificación de lanzamientos (plan de prueba)

    • Para cada iteración,

    • Actividades de prueba ágiles durante una iteración

  • Pruebas de regresión

  • Actividades de lanzamiento (relacionadas con la prueba)

Las actividades de prueba ágiles durante una iteración incluyen:

  • Participar en la planificación de iteraciones
  • Estimación de tareas desde el punto de vista de las pruebas
  • Escribir casos de prueba utilizando las descripciones de funciones
  • Examen de la unidad
  • Pruebas de integración
  • Prueba de funciones
  • Reparación de defectos
  • Pruebas de integración
  • Test de aceptación
  • Informe de estado sobre el progreso de las pruebas
  • Seguimiento de defectos