El Diseño Guiado por el Comportamiento (BDD - Behaviour Driven Development) es algo que surgió en 2006. Sus conceptos no son tan nuevos, la verdad es que BDD es la unión de varias prácticas consideradas ágiles y útiles para los que desarrollamos software.

El objetivo de BDD es focalizarse en las funcionalidades de alto valor y bajar los costos de cambios. Ya tendrán una idea de BDD si actualmente trabajan con:

  • XP - Especialmente con Desarrollo Guiado por las Pruebas (TDD) y con integración contínua.
  • Diseño Guiado por el Dominio (DDD).
  • Planificación orientada a las pruebas de aceptación.
  • Programación Neurolinguística (En el sentido de que cada palabra pronunciada tiene un significada que se encuentra en la memoria de las personas y orientan el desarrollo de software)

La idea es que las palabras usadas en el código, tienen un poder enorme de confundir o de facilitar el trabajo al desarrollador. Por lo tanto, se tiene que hacer un uso eficiente de la lengua: Los test deben tener nombres que identifiquen lo que estan probando en realidad, o sea, el nombre de los test deben ser frases que dicen lo que hacen en detalle y para que se entienda.

Implementaciones de BDD

Para quien usa Java, Dan North escribió JBehave, una herramienta cuyo objetivo es ayudar a escribir test usando un lenguaje mas natural de las forma que se escribe usando JUnit. Tenemos un ejemplo de JBehave en la Wiki de Dos Ideas.

Para los desarrolladores de Ruby existe un framework que es RSPec.

Basado en Behaviour Driven Design (BDD)

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw