¡Es hora de hablar de ATDD! Así que quieres saber sobre el ATDD, o quieres repasar este concepto. No te preocupes. En este artículo, vamos a cubrir exactamente lo que es ATDD, y cómo se relaciona con BDD y TDD. También cubriremos las mejores prácticas y repasaremos la metodología completa paso a paso.
En esta guía de ATDD
¿Qué es el ATDD?
ATDD es la práctica del ATDD. El enfoque de desarrollo ATDD es un marco que incluye prácticas de ATDD y BDD. ATDD son las siglas de «desarrollo basado en pruebas de aceptación».
ATDD es un enfoque único del proceso de desarrollo de software que ayuda a crear código de automatización escribiendo primero los escenarios de las pruebas de aceptación y, a continuación, implementando el código en colaboración con participantes sin conocimientos técnicos. ATDD reúne a participantes sin conocimientos técnicos, probadores y desarrolladores en un mismo entorno para que trabajen juntos en el mismo producto. La herramienta ATDD no está pensada para realizar pruebas, pero sí da soporte a las prácticas de ATDD.
BDD frente a TDD
El BDD se basa en ejemplos, a diferencia del ATDD, que se basa en pruebas de aceptación. El TDD se centra en las pruebas unitarias; sin embargo, el BDD se centra tanto en las pruebas unitarias como en las de aceptación. El ATDD requiere que un experto en el negocio trabaje codo con codo con los desarrolladores durante todo el proceso de desarrollo para aclarar y colaborar en lo que hay que crear.
Como desarrollador, quizá te preguntes: ¿qué significan exactamente ATTD y ATDD? ATTD son las siglas de «desarrollo impulsado por pruebas de aceptación». ATDD se refiere a la combinación del desarrollo impulsado por pruebas de aceptación y el BDD como una sola práctica. El ATDD es similar al TDD (desarrollo impulsado por pruebas), pero con el requisito adicional de escribir pruebas de aceptación antes de empezar a programar.
Agile frente a TDD
Agile incluye prácticas como ATDD, TDD y BDD. El ATTD es un subconjunto del ATDD. Se podría considerar el ATTD como una forma anterior del ATDD. En Agile, el enfoque de desarrollo ATTD se conoce como ATTD y ATBD (desarrollo basado en pruebas de aceptación) en XP (Programación Extrema). El ATBD implica que los expertos del negocio colaboren con los desarrolladores para decidir qué se va a desarrollar.
En Scrum, las pruebas de aceptación las redacta un grupo llamado «equipo de desarrollo», que colabora con un experto en el negocio que representa a los usuarios o clientes para decidir qué hay que desarrollar para una característica concreta o una historia de usuario. Las pruebas de aceptación se redactan basándose en requisitos de alto nivel o historias de usuario que representan los criterios de aceptación. Las pruebas de aceptación especifican cómo determinar cuándo se han cumplido los criterios de aceptación. El ATDD fue definido por Dan North en 2003. El ATDD es un proceso muy similar al ATBD (desarrollo basado en pruebas de aceptación). El ATBD se diferencia del ATDD en que el ATBD también especifica los detalles de implementación, mientras que el ATDD no intenta especificar los detalles de implementación: el objetivo del ATDD es únicamente comprobar si la implementación cumple o no con la especificación de requisitos.
Ventajas de la ATDD
El ATDD tiene muchas ventajas. Entre ellas se incluyen una mayor satisfacción del cliente, una mejor calidad, una reducción de los costes, una mayor rapidez y un aumento de la productividad. Los principios del ATDD son compatibles con los métodos en cascada y ágiles. Además, el ATDD fomenta una colaboración más estrecha entre los usuarios de negocio y los desarrolladores, ya que elimina barreras, aclara ambigüedades y mejora la comunicación a lo largo de todo el ciclo de vida del proyecto.
El ATDD requiere que todas las partes implicadas trabajen juntas en cada fase del proceso de desarrollo. El ATDD reduce el tiempo necesario para crear software de calidad. Además, el ATDD reduce el desperdicio al minimizar las repeticiones y corregir los defectos en una fase más temprana del ciclo de desarrollo. Si se aplica correctamente, el ATDD aumentará tus posibilidades de éxito en cada etapa del ciclo de vida de tu proyecto.
Las ventajas del ATDD son que reduce los errores en el código de producción y, al mismo tiempo, ahorra tiempo y esfuerzo en las pruebas manuales. Además, aumenta la productividad de los desarrolladores en un 50 %. La clave del éxito del ATDD es que hay que empezar primero por las pruebas de aceptación, para luego pasar a las pruebas de integración antes de llegar a las pruebas unitarias.
Pasos que hay que seguir en el ATDD
Hay cinco pasos que hay que seguir en las pruebas de aceptación, independientemente de si se utiliza ATDD o no:
1) Lo primero es entender las necesidades del negocio
2) El segundo paso es redactar las historias de usuario
3) El tercer paso es preparar los casos de prueba
4) El cuarto paso es analizar los defectos
5) El último paso es ejecutar los casos de prueba mediante el marco ATDD
¿Qué significa ATDD?
La forma completa de ATDD es ATTD, que es un subconjunto de ATDD. ATTD es el desarrollo basado en pruebas de aceptación; ATDD es tanto ATTD como ATBD (desarrollo basado en pruebas de aceptación); ATBD incluye prácticas de ATTD, ATDD y BDD. El ATBD se diferencia del ATDD en que el ATBD también especifica los detalles de implementación, mientras que el ATDD no intenta especificarlos: el objetivo del proceso ATDD es únicamente comprobar si la implementación cumple o no con los requisitos especificados.
Pasos que hay que seguir en las pruebas de aceptación:
1) comprender las necesidades de la empresa;
2) redactar historias de usuario;
3) preparar casos de prueba;
4) analizar los defectos y, por último,
5) Ejecutar los casos de prueba mediante el marco de trabajo presentado.
Consejos para una ATDD adecuada
Bueno, una cosa es saber qué es el ATDD, pero otra muy distinta es poner en práctica este marco y este proceso. Por experiencia, estos consejos me parecen súper útiles:
- El ATDD debe realizarse en una fase temprana. El ATDD no debe sustituir a las pruebas unitarias. El ATDD es una técnica de diseño de pruebas. El ATDD requiere colaboración. El ATDD funciona mejor cuando se cuenta con buenas historias de usuario. Las sesiones colaborativas de ATDD con desarrolladores y probadores pueden llevar mucho tiempo, pero esta colaboración da como resultado un producto final mejor. El ATDD funciona mejor cuando los requisitos están claros. El ATBD/ATDD necesita contar con buenos ejemplos que ayuden a comprender claramente los requisitos.
- Otro consejo excelente para realizar buenas pruebas de aceptación es utilizar herramientas ATDD como Cucumber, JBehave o Concordion. Los marcos ATDD están diseñados específicamente para organizar los escenarios de pruebas ATDD y reducir la complejidad de su implementación.
Reflexiones finales sobre el ATDD
El ATDD es una técnica de diseño de pruebas que ofrece numerosas ventajas, entre las que se incluyen una mayor satisfacción del cliente, una mejor calidad, una reducción de los costes y un aumento de la velocidad y la productividad. El ATDD requiere que todas las partes implicadas colaboren en cada fase del proceso de desarrollo, lo que reduce el desperdicio al minimizar las repeticiones y corregir los defectos en una fase más temprana del ciclo de desarrollo.
El ATDD también aumenta la productividad de los desarrolladores en un 50 %. El ATTD y el ATBD son variantes del ATDD: el ATTD es el desarrollo basado en pruebas de aceptación, mientras que el ATBD incluye tanto prácticas de pruebas de aceptación como principios del BDD.
La clave del éxito con un marco ATDD es empezar pronto, no sustituir las pruebas unitarias, contar con buenas historias de usuario para definir los requisitos, usar herramientas como Cucumber o JBehave si están disponibles, y colaborar en sesiones para aclarar los requisitos antes de



