Logo Studenta

BDD

¡Estudia con miles de materiales!

Vista previa del material en texto

Nombre: 
Kaholy Alexandra 
Apellido: 
Dalis Peña 
Matricula: 
2021-0687 
Asignatura: 
Administración de proyectos de software 
Maestro: 
Willis Polanco 
Tema: 
Behavior Driven Development 
Fecha de entrega: 
04/12/2023 
 
 
 
 
Introducción: 
El Desarrollo Guiado por Comportamientos (BDD) es una metodología de 
desarrollo de software que se centra en el comportamiento del sistema desde 
la perspectiva del usuario. A diferencia del Desarrollo Guiado por Pruebas 
(TDD), que se enfoca en pruebas unitarias, BDD busca alinear los objetivos 
de negocio con las pruebas y el código. En este documento, exploraremos en 
detalle qué es BDD, cómo funciona, los lenguajes comúnmente utilizados y 
las diferencias esenciales con TDD desde la perspectiva de un equipo de 
pruebas de software. 
1. Fundamentos de BDD: BDD se basa en la premisa de que las historias 
de usuario deben ser el centro del desarrollo. Las historias de usuario 
describen el comportamiento esperado del sistema desde el punto de vista 
del usuario final. BDD utiliza un lenguaje natural, específicamente diseñado 
para ser comprendido tanto por desarrolladores como por no técnicos, para 
expresar estas historias de usuario. 
2. Funcionamiento de BDD: En BDD, las historias de usuario se expresan 
en formato "Gherkin", un lenguaje simple y estructurado que utiliza palabras 
clave como "Given" (Dado), "When" (Cuando) y "Then" (Entonces). Estas 
palabras clave ayudan a describir el estado inicial, la acción y el resultado 
esperado. Posteriormente, estas descripciones se convierten en pruebas 
automatizadas. 
El proceso típico de BDD implica la colaboración estrecha entre los equipos 
de desarrollo y de negocio. Las historias de usuario se discuten y refinan en 
sesiones de "descubrimiento" o "inmersión" para asegurar un entendimiento 
claro de los requerimientos. Es decir: 
1. Escritura de Especificaciones: Se escriben especificaciones en lenguaje 
natural que describen el comportamiento esperado del sistema. Estas 
especificaciones suelen expresarse en formato "Gherkin", que es un lenguaje 
de dominio específico fácil de entender. 
2. Automatización de Pruebas: Las especificaciones escritas se traducen en 
pruebas automatizadas que verifican el comportamiento del sistema. 
3. Colaboración Continua: La colaboración entre desarrolladores, analistas y 
equipos de pruebas continúa a medida que se implementa y evoluciona el 
software. 
Principios y Características de BDD: 
1. Colaboración: BDD promueve la colaboración entre desarrolladores, 
analistas de negocio y equipos de pruebas desde las etapas iniciales del 
desarrollo. 
2. Lenguaje Natural: Utiliza un lenguaje natural comprensible por todas las 
partes involucradas en el proyecto para describir el comportamiento del 
software. 
3. Especificaciones Ejecutables: Las especificaciones escritas en lenguaje 
natural son ejecutables, lo que significa que se pueden automatizar y utilizar 
como pruebas de aceptación. 
4. Historias de Usuario: Fomenta la escritura de historias de usuario desde la 
perspectiva del usuario final para comprender y validar el comportamiento 
del sistema. 
Lenguajes Utilizados en BDD: 
1. Gherkin: Es un lenguaje de dominio específico utilizado comúnmente en 
BDD para escribir las especificaciones. Tiene una sintaxis fácil de entender 
y se utiliza para describir el comportamiento del software de manera 
estructurada. 
2. Implementación de Pruebas: Las pruebas escritas en BDD suelen 
implementarse utilizando lenguajes de programación como Java, C#, Ruby, 
Python, entre otros. 
BDD es compatible con varios lenguajes de programación y herramientas. 
Uno de los frameworks más populares para BDD es Cucumber, que soporta 
varios lenguajes como Java, Ruby, Python y JavaScript. Otros frameworks 
como Behave (Python), SpecFlow (.NET) y JBehave (Java) también son 
ampliamente utilizados. 
Estos frameworks permiten la ejecución de pruebas automatizadas escritas 
en Gherkin, asegurando la alineación entre las expectativas del usuario y el 
código implementado. 
 
 
 
Diferencias entre TDD y BDD: 
Mientras que TDD se centra en la escritura de pruebas unitarias antes de 
escribir el código, BDD se centra en las historias de usuario y en cómo el 
sistema se comporta desde el punto de vista del usuario. Aquí se detallan 
algunas diferencias clave: 
1. Perspectiva: 
TDD (Desarrollo Guiado por Pruebas): Se centra en las pruebas a nivel de 
unidad y en la escritura de pruebas antes de escribir el código de producción. 
 BDD (Desarrollo Guiado por Comportamientos): Se centra en el 
comportamiento del sistema desde la perspectiva del usuario y utiliza un 
lenguaje natural para escribir especificaciones ejecutables. 
2. Lenguaje Utilizado: 
 TDD: Se centra en pruebas a nivel de código y utiliza lenguajes de 
programación para escribir las pruebas. 
 BDD: Utiliza lenguaje natural, como Gherkin, para escribir 
especificaciones, y luego se implementan las pruebas en un lenguaje de 
programación. 
3. Colaboración: 
TDD: La colaboración se centra en desarrolladores y equipos de pruebas. 
BDD: Involucra a desarrolladores, analistas de negocio y equipos de pruebas 
desde el principio, fomentando una colaboración más amplia. 
Ambas metodologías (TDD y BDD) se pueden complementar, y la elección 
entre ellas a menudo depende de las preferencias y las necesidades del equipo 
de desarrollo. BDD amplía el enfoque más allá de las pruebas de unidad 
hacia un entendimiento compartido del comportamiento del sistema.

Continuar navegando