ATDD VS BDD

117 views
Skip to first unread message

Francisco Calles

unread,
Oct 24, 2014, 6:43:42 AM10/24/14
to tdde...@googlegroups.com
Hola a todos,

Hace unas semanas acudí al taller de ATDD que impartió Pablo Tortodella de Kleer en Madrid, estoy escribiendo un post sobre el tema para el blog y tengo esta duda.

¿Que diferencia existe entre BDD y ATDD? en cuanto a técnica parece la misma y aunque le nombre es diferente y parece que el sentido también creo que realmente es lo mismo y el objetivo también.
Entonces si son tan "idénticos" porque lo diferenciamos.

Gracias a todos

Leo Antoli

unread,
Oct 24, 2014, 7:06:28 AM10/24/14
to tdde...@googlegroups.com
Hola,
Bajo mi punto de vista es más por motivos históricos,   BDD es como TDD top-down pero sin usar la palabra "test", TDD clásico es más bottom-up, y ATDD es como BDD pero volviendo a usar la palabra "test".

Resumiendo, yo hoy en día uso TDD, BDD, ATDD prácticamente como sinónimos.  Yo suelo hablar directamente de TDD para referirme a todos esos conceptos.

Saludos,
Leo



--
Has recibido este mensaje porque estás suscrito al grupo "TDDev" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a tddev-sp+u...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a tdde...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/tddev-sp.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Éric

unread,
Oct 24, 2014, 7:23:51 AM10/24/14
to tdde...@googlegroups.com
+1 Leo

Marcin Gryszko

unread,
Oct 24, 2014, 8:25:10 AM10/24/14
to tdde...@googlegroups.com
Segun Liz Keogh, BDD es una tecnica de descubrir los requisitos [1]: 

BDD isn’t about the tools. It’s about the conversations you have, exploring examples (or scenarios) of an application’s behaviour, to see if everyone has the right understanding.

Las pruebas que confirman la implementación de ellos es un artefacto derivado. A mi me gusta esta definicion: preguntas, indagaciones 'dame un ejemplo', 'que pasa si...' El resultado lo grabas en forma textual, o se queda en tu cabeza. Incluso, si llegas lejos, intentas automatizar la ejecucion de los ejemplos.

Matias Mascazzini

unread,
Oct 24, 2014, 2:13:57 PM10/24/14
to tdde...@googlegroups.com
Hace unas semanas estaba meditando exactamente lo mismo, para el informe de mi trabajo final de carrera (docs), que estoy a duras penas realizando...

Aquí en Argentina, el ahora Magister Carlos Fontela, se puso a investigar hace algunos años el "Estado del Arte" de TDD... es decir que había escrito sobre TDD en ese momento. Y marca algunas diferencias, su trabajo lo puedes consultar en:
http://sedici.unlp.edu.ar/bitstream/handle/10915/4216/Documento_completo.pdf?sequence=1
Tiene otros trabajos relacionados publicados...

Carlos Ble, en su libro también comenta de la situación. Y el polaco Gojko de "Especificaciones por Ejemplos" también habla de esta situación y lo que vio en 150 equipos ágiles en europa.

En lo personal, creo que si tienen sus diferencias y es donde quieren poner el foco de atención. Y como quieren ejecutar su propuesta, junto con que actores intervienen. Obviamente desde sus propuestas iniciales habrán ido cambiando y los artesanos las habrán ido adaptando según sus conveniencias para llevarlas a la practica.
A mi entender ATDD sigue siendo una practica casi exclusiva de los técnicos, ejemplos que se codifican en alguna prueba. BDD en cambio, busca que un no-tecnico pueda escribir la especificación o sino participar de una forma más activa, para esto adopta y estructura las historias de usuario con formato connnextra y agrega las clausulas "Given-when-then", aunque hasta ahora no encontre a un no-Tecnico que escriba Gerking.


En mi informe, hasta ahora, pongo esto:
BDD vs. ATDD
ATDD y BDD son dos prácticas casi contemporáneas, la primera surgida en 2002 y la segunda empezada a desarrollar en 2003. Y si bien se lanzaron para resolver cuestiones diferentes (BDD surge como mejora de TDD, mientras que ATDD es una ampliación), llegaron a conclusiones para nada disjuntas.
Lo importante es que, tanto BDD como ATDD pusieron el énfasis en que no eran pruebas de pequeñas porciones de código lo que se desarrollaba, sino especificaciones de requerimientos ejecutables [11]. Un test de cliente o de aceptación con estas prácticas, a nivel de código, es un enlace entre el ejemplo y el código fuente que lo implementa. [2]
En los dos casos, se trata de actividades que empiezan de lo general y las necesidades del usuario, para ir deduciendo comportamientos y generando especificaciones ejecutables. [1]
Fontela [1], nos dice que las mayores coincidencias entre BDD y ATDD están en sus objetivos generales:
• Mejorar las especificaciones.
• Facilitar el paso de especificaciones a pruebas.
• Mejorar la comunicación entre los distintos perfiles: clientes, usuarios, analistas, desarrolladores y testers.
• Mejorar la visibilidad de la satisfacción de requerimientos y del avance.
• Disminuir el gold-plating.
• Usar un lenguaje único, más cerca del consumidor.
• Focalizar en la comunicación, no en las pruebas.
• Simplificar las refactorizaciones o cambios de diseño.
BDD y ATDD se basan en diseño integral, enfocándose en el chequeo de comportamiento y en el desarrollo top-down. [11]


[1] http://sedici.unlp.edu.ar/bitstream/handle/10915/4216/Documento_completo.pdf?sequence=1
[2] 2. C. Blé Jurado. “Diseño Ágil con TDD”, Primera Edición. Madrid, España: iExpertos, 2010, cap. 1, pp. 33-52
[11] C. Fontela, “Cobertura entre pruebas a distintos niveles para refactorizaciones más seguras”, Facultad de Informática, Universidad Nacional de La Plata, La Plata, Argentina, 2013. cap. 1, pp. 10
http://sedici.unlp.edu.ar/handle/10915/29096

ATDD
M. Gärtner, “ATDD by Example: A Practical Guide to Acceptance Test-Driven Development” Boston: Addison-Wesley Professional, 2012. cap. 9 pp 131

BDD.
D. North, “Introducing BDD” [online], Dan North, 2006. Disponible en: http://dannorth.net/introducing-bdd/

Gojko Adzic. Specification by Example. Manning Publications Co., Greenwich, CT, 2011.




Saludos
Matías Mascazzini

Corrientes, Argentina

Me encuentras en:
LinkedIn: http://ar.linkedin.com/in/matiasmasca/es
Twitter: @matiasmasca
ComunidadTIC: @matiasmasca
---------
Le recomiendo visitar: www.ComunidadTIC.com.ar
"¿Eres Informático?"

PD: son todos Carlos los autores de TDD en Español xD

--

Martín Salías

unread,
Oct 26, 2014, 9:18:47 PM10/26/14
to tdde...@googlegroups.com
Totalmente de acuerdo con Leo.

Usamos esos diferentes términos en ciertos contextos para explicar alternativas al mismo principio, que es diseñar a través del planteo de una hipótesis y la comprobación de la misma. Cuando lo vemos de esa manera, TDD se lo podríamos adjudicar a Aristóteles en la "Ética nicomáquea".

Saludos,

---
Martín Salías

Reply all
Reply to author
Forward
0 new messages