¿Qué están el TDC (Desarrollo Impulsado por el Comportamiento)?

¿Qué están el TDC (Desarrollo Impulsado por el Comportamiento)?

  • ITOps y DevOps
6 min de lectura Actualizado Apr 4, 2025

Puntos clave: El Desarrollo Conducido por el Comportamiento (BDD) mejora el desarrollo de software mediante una comunicación colaborativa basada en ejemplos, alineando a los equipos técnicos con los objetivos empresariales. Sigue un proceso continuo de Descubrimiento, Formulación y Automatización, promoviendo claridad y comprensión compartida entre los interesados.

  • BDD mejora la comunicación y alinea el desarrollo con los objetivos empresariales.
  • Los desafíos incluyen una curva de aprendizaje pronunciada y la dependencia de las herramientas.

Ampliamente conocido en el mundo tecnológico por su abreviatura BDD o por el apodo "Especificación por Ejemplo", el Desarrollo Impulsado por el Comportamiento se está definido generalmente como "una metodología para desarrollar software mediante comunicación continua basada en ejemplos entre desarrolladores, QAs y BAs." Creado por un hombre llamado Dan North, BDD están su respuesta a la frustración de no poder explicar claramente cuándo los desarrolladores querían saber por dónde Comienza, qué no probar, cuánto probar, cómo llamar a las pruebas y cómo entender por qué una prueba falla. Derivada del Desarrollo Impulsado por Pruebas (TDD) y el Desarrollo Impulsado por Pruebas de Aceptación (ATDD), esta metodología se está utilizando para aportar agilidad, comunicación concreta y una comprensión compartida de los objetivos entre los equipos, tanto técnicos como no técnicos.

Esencialmente, el proceso colaborativo de describir, de forma muy directa y basada en ejemplos, un conjunto de comportamientos que se pueden esperar de un sistema; en última instancia, el resultado es que todos los interesados son capaces de mantener conversaciones poderosas sobre lo que debe hacer el software. Además, cuando se implementa correctamente, todos en todos los equipos entenderán la funcionalidad de los entregables sin confusión y podrán identificar resultados clave antes incluso de que comience el proceso de desarrollo. En el siguiente artículo, exploraremos los entresijos del BDD, así como ejemplos de cómo implementarlo en la metodología de gestión del desarrollo de software de tu organización.

El enfoque colaborativo de desarrollo de software de BDD funciona bien con los sprints cortos, la retroalimentación continua y el enfoque iterativo para mejorar las metodologías Agile. Uno no reemplaza al otro, sino que se alinean para mejorarse mutuamente. BDD proporciona a los procesos Ágiles una forma estructurada y legible para humanos de Define requisitos y describe escenarios e interacciones de usuario, de modo que los desarrolladores tengan una comprensión centrada en el cliente, centrada en el negocio y del mundo real de lo que el software necesita hacer.

Una forma de pensar en BDD están como un conjunto de plugins para mejorar tus procesos Ágiles. Cuando BDD y Agile se integran, tu organización puede responder rápidamente a las necesidades para cumplir realmente con la promesa Ágil de software fiable y funcional cuando sea necesario, mientras apoyas el mantenimiento y mantienes a los equipos enfocados y disciplinados.

El TDC es un proceso que implica tres pasos que fluyen de forma continua y repetida para Haz cambios pequeños que son más manejables. La idea es avanzar rápidamente por estos pasos, documentar los logros para que son repetibles y fortalecer tu proceso con cada iteración.

BDD en Agile

Proceso BDD

  • Descubrimiento: El proceso comienza desarrollando la "historia de usuario" que describe lo que el usuario necesita hacer, la funcionalidad que requiere, prioridades y posibles lagunas en la comprensión. El objetivo están una idea mutua, completa y detallada de las necesidades y las razones que las sustentan. En el BDD, estas historias tienen una estructura, como te Ve en los ejemplos.
  • Formulación: El siguiente paso es documentar las conclusiones de las historias de usuario, esencialmente devolviendo a los usuarios y a otros interesados clave lo que los desarrolladores entienden. Las formulaciones son especificaciones ejecutables que pueden compartirse para recibir retroalimentación y revisiones. El resultado están una visión compartida y mutuamente entendida de qué construir.
  • Automatización: Esta está la etapa en la que las especificaciones de software se son implementadas en código como escenarios de prueba ejecutables que describen cómo debería funcionar el sistema, en un lenguaje legible para humanos. Estos escenarios o ejemplos automatizados Haz fácil entender qué hace el software.

El proceso enfatiza hacer pequeños cambios, iterar rápidamente y añadir valor continuamente al sistema, estando preparado para responder a la retroalimentación.

Aceleración del TDD y ATDD a través del BDD

Para entender el TDC, primero te debes introducir al significado de TDD y ATDD, así como a cómo son utilizan. A continuación, te deberás entender cómo el DBC acelera estas dos metodologías combinando sus principios básicos en un proceso potente de desarrollo de software.

TDD "se refiere a un estilo de programación en el que son tres actividades estrechamente entrelazadas: codificación, pruebas (en forma de escribir pruebas unitarias) y diseño (en forma de refactorización)." Cuando esta metodología está en utiliza, un desarrollador debe primero Define un conjunto de pruebas para una unidad específica, luego Haz que falle a propósito, después desplegar la unidad y después definir si la unidad tuvo éxito. Una parte clave del éxito de BDD es que un programador debe conocer y trabajar dentro de la estructura TDD antes de aprender o implementar BDD.

ATDD "implica que miembros del equipo con diferentes perspectivas (cliente, desarrollo, pruebas) colaboren para escribir pruebas de aceptación antes de implementar la funcionalidad correspondiente. Las discusiones colaborativas que se producen para generar la prueba de aceptación son suelen denominarse los tres amigos: representan las tres perspectivas de los clientes (¿qué problema son intentamos resolver?), desarrollo (cómo podríamos resolver este problema) y pruebas (¿qué pasa con ...)." Cada prueba dentro de esta metodología debería escribirse en un formato "dado, cuándo, entonces" o si-entonces, como se indica a continuación:

Dado [contexto inicial]

Luego [asegurar algunos resultados]

Con el primer enfoque en reducir el tiempo total de desarrollo, así como el número de errores encontrados mediante pruebas en todos los niveles de requisitos y bases de código más sólidas, el segundo se centra en simplificar la comunicación mediante un formato de Lenguaje Específico de Dominio y la interconexión de cada perspectiva de resultado final; cuando se combinan, Obtén BDD. Ahora, tomando lo que sabemos de antes—que BDD es una metodología de comunicación basada en ejemplos usada para hablar sobre comportamientos de aplicaciones—en esencia, los principios básicos de BDD utilizan la estructura de conversación que incluso los no desarrolladores pueden entender de ATDD, junto con un enfoque reducido de pruebas TDD orientado a comportamientos específicos que son mejor descritos en lógica empresarial.

Los 2 principios básicos

Escenarios escritos en lenguaje sencillo que describan la intención, el quién y lo que debe ocurrir para Lograr los requisitos de la unidad. Dentro de BDD, las historias de usuario deben ser muy específicas y siempre estar en oraciones completas incluyendo el nombre o la función. Al presentar el método, Dan North afirmó que "Los desarrolladores descubrieron que podía hacer al menos parte de su documentación por ellos, así que empezaron a escribir métodos de prueba que eran oraciones reales. Además, descubrieron que cuando escribían el nombre del método en el lenguaje del dominio de negocio, los documentos generados tenían sentido para usuarios de negocio, analistas y testers." Idealmente, usando la palabra "debería" y en un formato if-then, BDD técnicamente no requiere un formato específico de escenario. Sin embargo, muchos expertos, incluido Dan, sugieren que tu organización trabaje con un formato estandarizado. De ese modo, los equipos pueden modificar, explorar y expandirse sin ningún problema, ahora y en el futuro.

Formato de historia de usuario de Dan North

Título (una línea que describe la historia con debería)

Criterios de aceptación: (presentados como escenarios)

Y [un poco más de contexto]...

Y [otro resultado]...

Para ayudar te a entender mejor cómo se ve, con ligeras variaciones en el formato, aquí están un ejemplo de prueba de API tomado de Guru:

Característica: Probar métodos CRUD en el marco de pruebas de API REST de ejemplo

Dado que configuro la URL de la API REST de muestra

Escenario: Ejemplo de publicación POST

Dado que establezco el endpoint API de POST posts

Cuando pongo el HEADER param, el tipo de contenido de solicitud es "application/JSON."

Y Set request Body

y enviar una solicitud HTTP POST

Entonces recibo el código de respuesta HTTP válido 201

Y el CUERPO de la respuesta "POST" no está vacío.

Escenario: Ejemplo de publicaciones de Obtén

Dado que he configurado el endpoint API "1" de los posts de Obtén

Cuando pongo el HEADER param, el tipo de contenido de solicitud es "application/JSON."

y enviar una solicitud HTTP Obtén

Entonces recibo el código de respuesta HTTP válido 200 para "GET".

Y el CUERPO de Respuesta "Obtén" no está vacío

Escenario: Ejemplo de publicación de ACTUALIZACIÓN

Dado que he configurado el endpoint de la API PUT posts para "1"

Cuando configuro el cuerpo de la solicitud de actualización

Y enviar la solicitud HTTP PUT

Luego recibo el código de respuesta HTTP válido 200 para "PUT".

Y el CUERPO de respuesta "PUT" está no vacío

Escenario: Ejemplo de ELIMINAR publicaciones

Dado que he configurado el endpoint de la API DELETE posts para "1"

Cuando envío la solicitud HTTP de DELETE

Entonces recibo el código de respuesta HTTP válido 200 para "DELETE".

Como hemos dicho en numerosas ocasiones a lo largo de este artículo, y no podemos enfatizar lo suficiente, el BDD depende en gran medida del utiliza de un lenguaje que todos los miembros de tu equipo puedan entender. El Lenguaje Específico de Dominio (DSL) están lo que hace que cada escenario sea legible para los socios comerciales, quienes son encargados del software y las pruebas en primer lugar, queriendo que ocurra un comportamiento específico. Funciona para eliminar la necesidad de explicar, tanto en aspectos técnicos como no técnicos, cómo se está implementado un comportamiento y, a cambio, genera menos confusión durante todo el proceso.

Para maximizar el tiempo y los resultados, el BDD está soportado por herramientas que automatizan las pruebas. Estrechamente vinculadas al DSL que está definido por tu organización, estas herramientas incluyen Cucumber, que puede entender Gherkin mientras soporta la redacción de especificaciones para 30 idiomas hablados. Cuando se utilizan, estas herramientas ejecutan automáticamente especificaciones de lenguaje común.

Lanza un desarrollo basado en el comportamiento en tu organización

No importa en qué punto están tu organización en su camino de gestión del desarrollo de software —usando métodos ágiles, waterfall u otra cosa— implementar esta metodología da un obtén mayor que el valor de riesgo. Si el utiliza del método no se adapta a tus necesidades, te simplemente puedes volver a escribir los requisitos de prueba como te lo has hecho. No están deshacer nada.

Para empezar, primero, asegúrate de que sus desarrolladores trabajan dentro y entienden TDD. Si no son lo hacen, tendrán que Comienza un periodo de formación para desarrollar habilidades dentro de este estilo de programación. Una vez que sues desarrolladores estén a bordo, tú podrás implementar los conceptos básicos de BDD en toda tu organización. De nuevo, será necesario realizar un periodo de formación. Durante este tiempo, los equipos de desarrolladores, QA y BA deben aprender a leer y entender el método de DSL y documentación que elijas. Comienza con un solo proyecto para Ve cómo funciona todo. Ten en cuenta que esta metodología requiere especificaciones antes del desarrollo y una retroalimentación externa constante de usuarios, clientes y expertos del sector. Sin embargo, cuando se implementa con éxito, te Reduce la regresión y mejorarás la comunicación de objetivos.

Beneficios del software BDD

La adopción generalizada de BDD para el desarrollo de software está siendo impulsada por su eficacia para traducir necesidades empresariales en código ejecutable. BDD ofrece:

  • Comunicación mejorada: El enfoque permite que todos los interesados describan sus necesidades y expectativas en lenguaje normal, para una claridad que es imposible con jerga tecnológica o código de programación.
  • Comprensión compartida: Como todos los interesados, incluidos usuarios no técnicos y responsables de la toma de decisiones, pueden comprender todas las fases de descubrimiento, formulación y automatización, los proyectos Comienza y avanzan con una comprensión clara y común de lo que hará el software.
  • Detección temprana de problemas: Cuando te "desplazarse a la izquierda" para probar, encontrar y solucionar problemas pronto mediante comunicación basada en ejemplos, te simplificar y reducir tiempo, frustración y costes.
  • Mejora de la cobertura de pruebas: Como escribir pruebas están mucho más fácil, te puede abordar todos los escenarios posibles para realizar pruebas más exhaustivas y relevantes.
  • Reducción de la reestructuración: Con mejor claridad y comprensión de los requisitos, se cometen menos errores.
  • Bucles de retroalimentación más rápidos: Escribir y automatizar escenarios, con pruebas sólidas y retroalimentación, está más fácil y rápido con cada iteración.
  • Alineación con los objetivos empresariales: Como los interesados no técnicos son integrados desde el principio, el proceso de desarrollo se mantiene alineado con los objetivos empresariales.
  • Facilidad de mantenimiento: Los escenarios no solo guían el desarrollo, sino que se convierten en casos de prueba autodocumentados, por lo que está más fácil mantener y actualizar funciones de software.

Trampas comunes del enfoque BDD

Ningún enfoque para el desarrollo de software están perfecto, y eso están cierto para el BDD. te pueden encontrar algunos obstáculos y complicaciones al adoptarlo y utilizarlo. Estos incluyen:

  • Curva de aprendizaje pronunciada: te y tus equipos necesitarán tener más conocimientos de los conceptos necesarios para TDD. Los principiantes se beneficiarán de tener experiencia con TDD antes de asumir TDD.
  • Dependencia de herramientas: Puede haber una tendencia a centrarse en herramientas sin prestar suficiente atención a los principios, la historia de usuario del BDD. Mantén el enfoque en la colaboración, la comunicación, la comprensión mutua y una mejor cobertura de pruebas.
  • Desalineación conceptual: Los equipos pueden no entender el propósito subyacente del BDD, pensando en ello como una cuestión tecnológica en lugar de verlo como un enfoque colaborativo. El resultado puede ser una dependencia excesiva de herramientas y marcos de prueba, sin que están, en esencia, una forma de mejorar la comunicación entre partes interesadas tecnológicas y no tecnológicas.

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de ITOps y DevOps

Suscríbete al Informe

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Gracias te

Tú te has suscrito a The Brief
El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.