¿Qué es BDD?

El desarrollo dirigido por el comportamiento (BDD) es una síntesis y perfeccionamiento de las prácticas derivadas del desarrollo dirigido por pruebas (TDD) y el desarrollo dirigido por pruebas de aceptación (ATDD). BDD aumenta la TDD y ATDDD con las siguientes tácticas:

  • Aplicar el principio de los “cinco por qué” a cada historia de usuario propuesta, de modo que su propósito esté claramente relacionado con los resultados del negocio.
  • Pensar “de fuera hacia dentro”, es decir, implementar sólo aquellos comportamientos que contribuyen más directamente a estos resultados de negocio, con el fin de minimizar el despilfarro
  • Describir los comportamientos en una sola notación que sea directamente accesible a los expertos en el dominio, a los probadores y a los desarrolladores, con el fin de mejorar la comunicación
  • Aplicar estas técnicas hasta los niveles más bajos de abstracción del software, prestando especial atención a la distribución del comportamiento, de modo que la evolución siga siendo barata

Beneficios

Los equipos que ya utilizan TDD o ATDDD pueden querer considerar BDD por varias razones:

  • BDD ofrece una guía más precisa sobre la organización de la conversación entre desarrolladores, probadores y expertos en dominios.
  • Las notaciones que se originan en el enfoque BDD, en particular el lienzo “dado cuando”, están más cerca del lenguaje cotidiano y tienen una curva de aprendizaje menos profunda en comparación con las de herramientas como Fit/FitNesse
  • Las herramientas que apuntan a un enfoque BDD generalmente permiten la generación automática de documentación técnica y de usuario final a partir de las “especificaciones” de BDD.

Errores comunes

Aunque Dan North, quien formuló por primera vez el enfoque BDD, afirma que fue diseñado para abordar cuestiones recurrentes en la enseñanza de la DDT, está claro que la BDD requiere familiaridad con una mayor gama de conceptos que la DDT, y parece difícil recomendar que un programador novato aprenda primero la DDT sin una exposición previa a los conceptos de la DDT.

El uso de BDD no requiere herramientas o lenguajes de programación particulares, y es principalmente un enfoque conceptual; convertirlo en una práctica puramente técnica o en una práctica que depende de herramientas específicas sería perder el punto de vista