Acceptance Test Driven Development

De Dos Ideas.
Revisión del 20:19 26 jun 2009 de 201.251.185.130 (discusión) (Ver también)
Saltar a: navegación, buscar

Desarrollo guiado por pruebas de aceptación, o Acceptance Test Driven Development (ATDD) es una técnica de Desarrollo Agil De Software que se basa en escribir las pruebas de aceptación antes que el desarrollo, y en la automatización de las mismas.

Cómo en Test Driven Development (TDD), Acceptance Test Driven Development también involucra escribir las pruebas antes que el código, y éstas pruebas representan las expectativas del comportamiento que el software debe tener. En ATDD el equipo crea una o más pruebas de nivel de aceptación para una característica antes de empezar a trabajar en ésta. Típicamente éstas pruebas son discutidas y capturadas cuando el equipo está trabajando con los interesados del negocio (dueño del producto, cliente) para entender una historia en el backlog.

Cuando las pruebas son capturadas en un formato soportado por alguna herramienta o framework de automatización de test funcional, los desarrolladores pueden automatizar éstos tests escribiendo el código que soporte (fixtures) como se implementa la funcionalidad. Las pruebas de aceptación entonces se convierten como requerimientos ejecutables.

Esto provee feedback sobre cuan cerca está el equipo de "terminar", dando una clara indicación del progreso hacia la meta.

El acto de definir pruebas de aceptación mientras se discuten los requerimientos resulta en un mayor entendimiento. Las pruebas de ATDD fuerzan a llegar a un acuerdo concreto acerca del comportamiento exacto que el software debe exhibir.

Automatizar las pruebas a la vez que se implementa funcionalidad resulta en un software en general más testeable, dónde es relativamente fácil agregar más pruebas automatizadas adicionales. Además las pruebas de regresión automatizadas resultantes proveen un valioso feedback inmediato acerca de las expectativas de cara al negocio.

Ciclo de desarollo ATDD

  1. Discusión. Desarrolladores, testers, expertos de dominio y el dueño de producto se juntan y discuten la funcionalidad buscando obtener un criterio de aceptación.
  2. Destilar. Una vez que se tienen las pruebas bosquejadas se capturan éstas en un formato que trabajen con un framework de automatización de pruebas. Se intenta que las pruebas queden expresados lo más claro y entendible posible, sin preocuparse (todavía) en como se van a automatizar. El foco está en la esencia de la prueba y se ignoran los detalles de implementación.
  3. Desarrollo. Los desarrolladores siguen el enfoque de primero probar, ejecutan los tests de aceptación y ven que fallan. Luego automatizan las pruebas escribiendo lo necesario para conectar los tests al código. El siguiente paso es implementar el código escribiendo TDD. Finalmente se hacen pasar los tets.
  4. Demostración. Se realizan pruebas de exploración para revelar hollos en los criterios de aceptación y descubrir riesgos que no se habían pensado aún. Una vez que todos los tests pasan la historia puede ser demostrada al dueño de producto, avisándole de los riesgos potenciales descubiertos durante la implementación y exploración.

Herramientas y frameworks de ATDD

Ver también