Desarrollo Orientado a Test de Aceptación (ATDD) I

Modelo, método y gestión: Desarrollo Orientado a Test de Aceptación (ATDD) I

La entrada del blog me pareció muy interesante y acertada, en la línea del autor. Me impactó agradablemente comprobar que en el proyecto en el que trabajo actualmente, ya estamos aplicando esta metodología de desarrollo, habiendo llegado a una solución similar a través del cruce de conocimientos, sentido común y aquello de ‘inspeccionar y adaptar’.

El caso es que, la lectura, reforzó la metodología de desarrollo implantada y me dio algunas ideas para mejorar su uso.

Aprovechando esto, quiero contaros qué es ATDD, lo haré en este artículo, y cómo lo aplicamos en nuestro proyecto, en una segunda entrada.

En primer lugar hay que dejar claro que ATDD no propone un paradigma nuevo, viene a galope y rebufo de TDD, y no hace más que aplicar el conjunto de técnicas de desarrollo de SW que este propone.

TDD, como ya deberías saber, expone un modelo de desarrollo basado en tests, erigiendo a estos en el eje del desarrollo del producto. Dos tipos de test marcarán la orientación del desarrollo:

  • Los test unitarios, que dirigen y validan el desarrollo de las clases y sus métodos (thinking java).
  • Los test de integración, que dirigen y validan la relaciones entre los distintos componentes y capas de abstracción.

Pero TDD no es una cuestión técnica únicamente, alrededor estaremos evaluando otros términos y cuestiones:

  • Refactorización.
  • Repetición de código.
  • Mínima implementación (producir sólo el código requerido, nunca más).
  • Short babe steps.
  • Lean.
  • Y un ligero etcétera que no es el lugar donde definir.

El problema de TDD es saber ‘qué tengo que probar’ y es fácil caer en la tendencia de probarlo todo, cuando no se tiene claro, lo cual puede traducirse en una velocidad del equipo muy lenta, una cobertura de test dudosamente efectiva y un sobre esfuerzo de producción de código no requerido. TDD favorece la la mínima implementación, es decir, hacer lo que nos han pedido y nunca más, pero no tener claro qué hay que probar, favorece realmente lo contrario.

ATDD se sirve de las mismas herramientas tecnológicas usadas por TDD, sin variación, bueno es posible utilizar herramientas específicas que nos facilitan la vida, pero no imprescindible. Entonces ¿cuál es la diferencia y qué aporta ATDD nuevo?:

  • Permite dirigir el desarrollo, de una nueva funcionalidad, tomando, como punto de inicio y referencia, los criterios de aceptación de la misma, previamente establecidos. De este modo se resuelve la duda anteriormente planteada: ¿qué tengo que probar?.
  • Implanta una práctica de colaboración entre los distintos implicados e interesados. Para establecer los criterios de aceptación que permitan definir y verificar el producto final, se debe crear un clima colaborativo que permita una exacta relación y definición. ¿Os acordáis de las ‘C’ de Conversation y Criteria en las Historias de usuario?: Diálogo, divulgación del conocimiento, validación de suposiciones, implicación en todas las escalas del producto, criterios que definen la funcionalidad y test que los validan.

Modelo, método y gestión: El proceso ATDD en mi Proyecto.Como podéis ver en el diagrama, la mayoría de actividades ATDD encajan fuera del conjunto de técnicas aplicadas en TDD. Por tanto, el proceso, está más una filosofía en el comportamiento del equipo de trabajo, es decir, una metodología abierta en la que no deberían faltar, de un modo u otro, las actividades apuntadas. No debemos olvidar que cada equipo de trabajo puede dar más o menos importancia a cada una de las actividades, en función de la naturaleza del proyecto o la propia configuración del equipo, pero siempre deberíais evaluar, al menos, estas que os he apuntado:

  • Definir funcionalidad.
  • Diálogo y divulgación.
  • Validación de suposiciones.
  • Determinar criterios de aceptación.
  • Relacionar y definir TEST de aceptación.
  • Seleccionar el test más sencillo y significativo de la funcionalidad.
  • Desarrollo TDD.
  • Aceptación de la historia.

En la segunda parte del artículo os contaré cómo aplicamos el concepto en el día a día de nuestro desarrollo.

Como siempre estaré encantado de vuestra participación a través de cualquiera de los medios de divulgación del artículo.

Modelo, método y gestión: Gracias por la lectura y hasta pronto.  Óscar R. Onrubia.  @OscaRonrubia

Gracias por la lectura y hasta pronto.

Óscar R. Onrubia.

@OscaRonrubia

Anuncios
Imagen | Esta entrada fue publicada en Desarrollo, Historias de usuario, Método, Metodologías Ágiles y etiquetada , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s