Si estás buscando el lenguaje común para unir la parte técnica y la de negocio, necesitas el BDD. No, no son las siglas de algo súper complicado que no vas a entender, así que tranquilo.
Vamos paso a paso, y te aseguramos que vas a comprender perfectamente qué es el BDD y cómo aplicarlo en tu empresa en el día a día como parte de una metodología QA.
¿Qué es BDD?
BDD es Behavior Driven Development, o lo que es lo mismo en español, desarrollo guiado por comportamiento. Es un proceso de software ágil que busca la colaboración y entendimiento entre desarrolladores, gestores de proyecto y equipo de negocio. Es decir, es el camino para tomar antes de la fase de testing de un proyecto.
De hecho, tiene relación directa con el testing, pues el BDD surge directamente del TDD o desarrollo guiado por pruebas. Pero a diferencia del TDD, el BDD define las pruebas centradas en el usuario y el comportamiento del sistema y no en las funcionalidades de este. En otras palabras, el BDD describe las pruebas en un lenguaje natural que entienden todos los equipos de un proyecto, y no únicamente los programadores.
¿Cuándo usar el desarrollo guiado por comportamiento?
El desarrollo guiado por comportamiento es perfecto para comunicarse con todos los equipos durante el desarrollo de productos multifuncionales. Un equipo de desarrolladores y analistas QA trabaja en el código mediante un lenguaje de programación específico que en muchas ocasiones el cliente o cualquier otro equipo del proyecto no es capaz de leer.
El BDD permite a todos los implicados entender el proceso desarrollado y el contenido del código fuente. De hecho, este desarrollo le indica al código qué tiene que hacer y lo hace en un lenguaje natural entendido por todo el mundo.
No te preocupes, no estamos hablando en TDD, en código ni en ningún lenguaje de programación que no entiendas. Pero sabemos que no es un término sencillo de entender, así que vamos a ir un paso más allá viendo los principios del BDD.
Lenguaje Gherkin y los principios de BDD
Si hablamos de BDD no podemos pasar por alto el lenguaje Gherkin, un lenguaje específico de dominio que sirven para resolver problemas muy concretos. ¿Se te ocurre algo más específico que una situación en la que ambos equipos no se entiendan?
Lo positivo de este lenguaje es que cuenta con los elementos Given-When-Then que se han convertido en los principios de BDD básicos. Además de estos elementos hay muchos otros que ayudan a especificar y detallar las acciones, pero la base podría empezar por estos cinco.
- Feature. Describe la funcionalidad que hay que desarrollar.
- Scenario. Son las características que se dan para lograr la funcionalidad.
- Given. Hace referencia a las predicciones para que se puedan ejecutar las distintas acciones.
- When. Son las condiciones de las acciones a ejecutar.
- Then. Es el resultado de las acciones ejecutadas.
Además de estos cinco elementos Gherking, existe el patrón Role-Feaure-Reason. Esto es muy sencillo si jugamos con la estructura “Como [x], quiero [y] para que [z]” y nos ayudará a elaborar la funcionalidad o Feature dentro del lenguaje Gherkin.
- Como. Especifica el tipo de usuario de la acción.
- Quiero. Hace referencia a las necesidades de ese usuario.
- Para que. Es el objetivo final que desea cumplir.
Vamos a ponerlo en práctica con un ejemplo, no te preocupes. Así entenderás sin problema estos elementos y principios BDD.
Cuando haces una búsqueda en Google, como la consulta “ejemplos de BDD”, queremos que el motor de búsqueda nos devuelva los resultados que respondan a esta búsqueda concreta. Ahí tenemos nuestro Feature.
En este caso, el lenguaje Gherkin quedaría especificado de la siguiente manera en BDD:
- Feature: Como usuario web, quiero buscar en Google ejemplos de BDD para que me devuelva resultados y respuestas.
- Scenario: Búsqueda en Google.
- Given: Buscador de Google.
- When: Introducir la consulta “ejemplos de BDD”.
- Then: Se muestran resultados de “ejemplos de BDD”.
No era tan complicado de entender, ¿verdad? Pero ahora que sabes los principios básicos y una de las skills QA importantes, atento, porque el BDD tiene una serie de ventajas y beneficios para todos los equipos que te van a terminar de convencer de aplicar este desarrollo para tu negocio.
Beneficios del BDD
Ya hemos mencionado que el BDD se convierte en un medio para que todos los implicados en un proyecto técnico puedan entenderse a la perfección. Esto lleva consigo una serie de beneficios claros para un trabajo sencillo y claro para todos.
- Aumenta la colaboración entre las partes involucradas. Al tener todos un mismo lenguaje de entendimiento, todas las partes sienten que forman un único equipo y mejora la colaboración entre ellas.
- Se prioriza el valor de negocio. Se establecen prioridades con los clientes y el lenguaje BDD permite a los desarrolladores entender e involucrarse más con los objetivos comerciales, logrando un resultado óptimo a las necesidades del cliente.
- Reducción de riesgo en el proyecto. Como todas las partes implicadas saben de qué se está hablando en todo momento y cuentan con una visión global del proyecto, se corren menos riesgos en el desarrollo e implementación del proyecto.
- Creación de metodologías ágiles de trabajo. Al explicarse todos los requerimientos y escenarios posibles, el desarrollo posterior es mucho más sencillo, ya que se intenta comprender el comportamiento del sistema en todas sus vertientes.
¿Qué tener en cuenta para aplicarlo?
Antes de aplicar BDD es importante saber de dónde partimos, y que la información sea común a todas las partes. Si hemos comentado que el BDD surge de la necesidad de que todos los implicados entiendan de qué se habla, el que la información previa sea de conocimiento general también es importante.
Así, hay que conocer el punto de inicio de la prueba, lo que sí se va a probar y lo que no, la frecuencia de cada uno de los procesos del proyecto, los nombres o los mecanismos utilizados para detectar los distintos fallos.
Ahora que ya sabes lo que es el BDD, o desarrollo guiado por comportamiento, puede que te hayan quedado dudas sobre su aplicación, metodología o formas de trabajo. ¡Pero tenemos la solución para ti! Nuestro equipo de QA Services & Testing con más de 8 años de experiencia y certificado en ISTQB, es experto en este tipo de implementaciones y podrá resolver todas tus preguntas al respecto. ¿Te ayudamos?
¿Quieres más información sobre nuestros servicios de QA?
Contacta con nuestro equipo de expertos en QA y Testing
The article on Behavior-Driven Development (BDD) explains how this approach improves collaboration between developers, testers, and stakeholders by using clear, natural language to describe system behaviors. It effectively shows how writing scenarios in the Given-When-Then format helps ensure that tests align with business requirements. The overview is concise and practical, highlighting the benefits of BDD in fostering better communication and accurate outcomes.
Fantastic explanation of Behavior Driven Development! Your breakdown of BDD testing and its focus on collaboration between developers, testers, and business stakeholders is enlightening. It’s clear how this approach can lead to better-aligned software solutions and more efficient testing processes. Thanks for making the concept so accessible!
Its a great blog.