¿Qué es ATDD?

De forma análoga al desarrollo basado en pruebas, el desarrollo basado en pruebas de aceptación (Acceptance Test Driven Development, ATDD) involucra a miembros del equipo con diferentes perspectivas (cliente, desarrollo, pruebas) que colaboran en la redacción de pruebas de aceptación antes de implementar la funcionalidad correspondiente. Las discusiones colaborativas que se producen para generar la prueba de aceptación se denominan a menudo los tres amigos, que representan las tres perspectivas del cliente (¿qué problema estamos tratando de resolver?), el desarrollo (¿cómo podríamos resolver este problema?), y las pruebas (¿qué pasa con….?).

Estas pruebas de aceptación representan el punto de vista del usuario y actúan como una forma de requisitos para describir cómo funcionará el sistema, además de servir como una forma de verificar que el sistema funciona según lo previsto. En algunos casos, el equipo automatiza las pruebas de aceptación.

BDD y SDD

ATDD también puede ser referido como Desarrollo dirigido por Pruebas de Historias (SDD), Especificación por Ejemplo o Desarrollo dirigido por Comportamiento (BDD). Estos diferentes términos existen para enfatizar algunas diferencias en el enfoque que conducen a resultados similares.

Beneficios

Del mismo modo que la TDD da lugar a aplicaciones diseñadas para facilitar las pruebas unitarias, la ATDD favorece la creación de interfaces específicas para las pruebas funcionales. (Las pruebas a través de la interfaz de usuario real de una aplicación se consideran menos efectivas.)

Errores comunes

Incluso más que el uso de pruebas de aceptación automatizadas, esta práctica está fuertemente asociada con el uso de herramientas específicas como Fit/FitNess, Fit/FitNess, Cucumber u otras.

Un riesgo importante, por lo tanto, es que la herramienta elegida obstaculice, en lugar de hacer avanzar, el objetivo principal de esta práctica: facilitar la conversación entre los desarrolladores y los propietarios de los productos sobre los requisitos de los mismos. Las herramientas deben adaptarse para satisfacer las necesidades de los propietarios de los productos y no al revés.