Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nombre:
Zeyddy K.
Apellido:
Sosa
Matrícula:
2019-9135
Tema:
Caso de estudio de la empresa CTTS
Materia:
Administración de Proyectos de Software
Grupo:
2
Facilitador:
Willis Polanco
Fecha de entrega:
15/08/2022
Behavior Driven Development
BDD o Behavior Driven Development es un proceso de desarrollo de software nacido
desde el desarrollo guiado por pruebas. El BDD es una práctica derivada del Test-
Driven Development (TDD), que también se guía por el enfoque Specification by
Example (SBE). Dicho método define los requisitos y pruebas funcionales de la
aplicación por medio de ejemplos realistas y no abstractos.
¿Cómo funcionan?
Como puede intuirse por su propio nombre, el behavior-driven development se guía
por el comportamiento que desea obtenerse del software final. Gracias al llamado
lenguaje ubicuo, una especie de lenguaje común, incluso los no expertos pueden
describir comportamientos específicos. El lenguaje ubicuo nació en el ámbito del
domain-driven design (DDD, diseño guiado por el dominio), una metodología que, al
igual que el BDD, se centra en los ámbitos de aplicación del producto. Ambos
planteamientos tienen en cuenta todas las áreas involucradas en el proyecto de
software y las interconectan más allá de los frameworks, los lenguajes de
programación o las herramientas concretas, todo gracias al lenguaje ubicuo o común.
Una vez se han identificado todas las funciones, estas se describen en forma de
escenarios predefinidos: el objetivo es pensar en todas las situaciones posibles en las
que el software debería reaccionar dando una respuesta concreta.
Generalmente, para evitar los problemas más comunes, el BDD usa las pruebas de
unidad y aceptación.
De igual modo, es vital comprender la historia del usuario del proyecto. Esta historia
de usuario es utilizada en la gestión del proyecto y el desarrollo de este. Es una
manera informal de usar el lenguaje natural para describir las características del
sistema de software.
Aunque todo depende del enfoque del proyecto, diferentes integrantes de áreas del
desarrollo de software pueden escribir historias de usuarios. Hablamos de directores,
Líderes de proyecto,
Desarrolladores, Ejecutores de
pruebas, etc.
Gherkin, el lenguaje
programático para BDD
El lenguaje usado para BDD es
Gherkin. Gherkin es un lenguaje
fácil de usar ya que es similar al
lenguaje natural de las personas.
Es posible utilizarlo para la realización de pruebas como para escribir historias de
escenarios de usuarios.
Según el sitio Abstracta, este lenguaje, por su simplicidad, puede ser escrito por
individuos sin grandes experiencias en el área de programación. Además, a pesar de
que es común ver procesos realizados en Ingles, Gherkin permite más de treinta
idiomas para trabajar.
❖ Given: Dado que me estoy registrando para una prueba gratuita (Contexto)
❖ When: Cuando envío los detalles requeridos (Sucede una acción)
❖ Then: Entonces recibo un enlace a la descarga. (Resultados)
Usualmente debe haber solo una función por archivo y en ella puede haber diversos
escenarios de prueba.
¿TDD o BDD?
Aunque TDD o BDD parecen muy similares, la principal diferencia entre ambas está en
el alcance. TDD es una práctica de desarrollo, enfocada en cómo escribir el código y
cómo debería funcionar. Mientras que BDD es un enfoque de equipo que hace hincapié
en por qué debes escribir ese código y cómo se debería comportar.
En TDD el desarrollador escribe los tests mientras que en BDD el usuario final, junto al
resto del equipo multidisciplinar, escriben los tests.
Si comparamos los 2, podemos decir que TDD se ocupa solo a nivel unitario o una
porción pequeña de la aplicación en desarrollo, y que BDD se va a ocupar de que las
pruebas sobre la integración de esas unidades (a un nivel de negocio), no solo sean
simples pruebas sino también documentación viva de la aplicación al alcance de
cualquier usuario y en su mismo idioma (términos que usa comúnmente).
Una vez esté todo el mundo esté alineado, será el mejor momento para que el director
técnico o el equipo de desarrollo establezca un
enfoque TDD, con lo que podrás prever y definir
con mucho más detalle las principales
características técnicas de tu desarrollo,
adelantándote a errores de programación que el
usuario final podría experimentar.