Descarga la aplicación para disfrutar aún más
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.
Compartir