Pruebas ágiles: metodologías

Agile es una metodología de desarrollo iterativa, donde todo el equipo del proyecto participa en todas las actividades. Los requisitos evolucionan a medida que avanzan las iteraciones, a través de la colaboración entre el cliente y los equipos autoorganizados. Como la codificación y las pruebas se realizan de forma interactiva e incremental, durante el curso del desarrollo, el producto final sería de calidad y garantizaría los requisitos del cliente.

Cada iteración da como resultado un incremento de producto de trabajo integrado y se entrega para las pruebas de aceptación del usuario. La retroalimentación del cliente así obtenida sería una entrada para las siguientes / subsiguientes iteraciones.

Integración continua, calidad continua

La integración continua es la clave para el éxito del desarrollo ágil. Integre con frecuencia, al menos diariamente, de modo que esté listo para un lanzamiento cuando sea necesario. Las pruebas en Agile se convierten en un componente esencial de todas las fases del desarrollo, asegurando la calidad continua del producto. La retroalimentación constante de todos los involucrados en el proyecto se suma a la calidad del producto.

En Agile, se le da la máxima importancia a la comunicación y las solicitudes de los clientes se reciben cuando es necesario. Esto le da la satisfacción al cliente de que todos los insumos son considerados y el producto de calidad de trabajo está disponible durante todo el desarrollo.

Metodologías ágiles

Hay varias metodologías ágiles que apoyan el desarrollo ágil. Las metodologías ágiles incluyen:

Melé

Scrum es un método de desarrollo ágil que enfatiza el enfoque centrado en el equipo. Aboga por la participación de todo el equipo en todas las actividades de desarrollo del proyecto.

XP

eXtreme Programming se centra en el cliente y se centra en los requisitos en constante cambio. Con lanzamientos frecuentes y comentarios de los clientes, el producto final será de calidad y cumplirá con los requisitos del cliente que se aclararán durante el proceso.

Cristal

Crystal se basa en fletamento, entrega cíclica y cierre.

  • El fletamento implica formar un equipo de desarrollo, realizar un análisis preliminar de viabilidad, llegar a un plan inicial y la metodología de desarrollo.

  • La entrega cíclica con dos o más ciclos de entrega se centra en la fase de desarrollo y la entrega final del producto integrado.

  • Durante el cierre, se realizan las revisiones y reflexiones posteriores a la implementación en el entorno del usuario.

FDD

El desarrollo basado en características (FDD) implica el diseño y la construcción de características. La diferencia entre FDD y otras metodologías de desarrollo ágil es que las características se desarrollan en fases específicas y cortas por separado.

DSDM

El método de desarrollo de software dinámico (DSDM) se basa en el desarrollo rápido de aplicaciones (RAD) y está alineado con el marco ágil. DSDM se enfoca en la entrega frecuente del producto, involucrando activamente a los usuarios y capacitando a los equipos para que tomen decisiones rápidas.

Desarrollo de software ajustado

En Lean Software Development, el foco está en eliminar el desperdicio y dar valor al cliente. Esto da como resultado un rápido desarrollo y un producto de valor.

El desperdicio incluye trabajo parcialmente realizado, trabajo irrelevante, características que no son utilizadas por el cliente, defectos, etc. que se suman a demoras en la entrega.

los Lean Principles son -

  • Eliminar residuos
  • Amplificar el aprendizaje
  • Compromiso de retraso
  • Empoderar al equipo
  • Entrega Rápido
  • Construya integridad en
  • Ver el todo

Kanban

Kanban se enfoca en administrar el trabajo con énfasis en la entrega justo a tiempo (JIT), sin sobrecargar a los miembros del equipo. Las tareas se muestran para que las vean todos los participantes y para que los miembros del equipo extraigan el trabajo de una cola.

Kanban se basa en:

  • Tablero Kanban (visual y persistente en todo el desarrollo)
  • Límite de trabajo en curso (WIP)
  • Tiempo de espera

Metodologías de prueba ágiles

Las prácticas de prueba están bien definidas para cada proyecto, sea Agile o no, para entregar productos de calidad. Los principios de las pruebas tradicionales se utilizan con bastante frecuencia en las pruebas ágiles. Uno de ellos es Early Testing que se centra en:

  • Redacción de casos de prueba para expresar el comportamiento del sistema.

  • Prevención, detección y eliminación tempranas de defectos.

  • Asegurarse de que se ejecuten los tipos de prueba correctos en el momento correcto y como parte del nivel de prueba correcto.

En todas las metodologías ágiles que discutimos, las pruebas ágiles en sí mismas son una metodología. En todos los enfoques, los casos de prueba se escriben antes que la codificación.

En este tutorial, nos centraremos en Scrum como la metodología de pruebas ágiles.

Las otras metodologías de prueba ágiles comúnmente utilizadas son:

  • Test-Driven Development (TDD) - El desarrollo basado en pruebas (TDD) se basa en la codificación guiada por pruebas.

  • Acceptance Test-Driven Development (ATDD) - El desarrollo impulsado por pruebas de aceptación (ATDD) se basa en la comunicación entre los clientes, desarrolladores y evaluadores y está impulsado por criterios de aceptación y casos de prueba de aceptación predefinidos.

  • Behavior-Driven Development (BDD) - En el desarrollo impulsado por el comportamiento (BDD), las pruebas se basan en el comportamiento esperado del software que se está desarrollando.

Ciclo de vida de pruebas ágiles

En Scrum, las actividades de prueba incluyen:

  • Contribuir a las historias de usuario según el comportamiento esperado del sistema representado como casos de prueba

  • Planificación de lanzamientos basada en el esfuerzo de prueba y los defectos

  • Planificación de Sprint basada en historias de usuarios y defectos

  • Ejecución de Sprint con pruebas continuas

  • Prueba de regresión después de completar Sprint

  • Informar los resultados de la prueba

  • Pruebas de automatización

Las pruebas son iterativas y se basan en sprints como se muestra en el diagrama que se muestra a continuación: