Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
Crowdar - Introducción a BDD
1. Introducción al desarrollo guiado
por comportamiento (BDD)
Mascheroni, Maximiliano Agustin
Contact me at LinkedIn
agustin.mascheroni@gmail.com
www.crowdar.com.ar
2. Antes de comenzar
● Requerimientos:
◦ Conocimiento en pruebas de software.
◦ Conocimientos mínimos en pruebas
automatizadas de software.
◦ Conocimientos mínimos de metodologías
ágiles
● BDD = TDD + DDD
3.
4. Introducción
● Nace como una buena práctica en la
metodología XP (Programación Extrema)
● Hoy se la usa en muchas otras
metodologías como:
◦ Proceso Unificado de Rational
◦ Scrum
6. Definición
● Desarrollo guiado por pruebas de
software
● Surge de la fusión de otras dos prácticas:
◦ TFD (Test First Development)
◦ Refactoring (Refactorización)
7. Definición
● TFD:
◦ Consiste en escribir el test antes que el código
fuente.
● Refactorización:
◦ Consiste en limpiar o mejorar el código (en
este caso el test).
◦ Puede implicar arreglar un test que dejó de
funcionar.
8.
9.
10. Ventajas
● Mayor Calidad.
● Diseño enfocado en las necesidades
● Mayor simplicidad en el diseño.
● Mayor productividad.
● Menos tiempo invertido en debugging.
11. Desventajas
● Difícil de implementar en la capa de
Interfaz de Usuario.
● Estado de la Base de Datos.
● Errores no identificados (exceso de
confianza).
● Curva de aprendizaje pronunciada.
12.
13.
14. Introducción
● Enfoque para el desarrollo de software
con necesidades complejas.
● Realiza una profunda conexión entre la
implementación y los conceptos del
modelo y núcleo del negocio.
15.
16. Premisas
● Enfocarse en el dominio y la necesidad, y
no en la implementación.
● Apuntar hacia la colaboración entre los
expertos del dominio, el negocio y los
desarrolladores.
17. Premisas
● Utilizar el lenguaje ubicuo
◦ Expresar el dominio del problema en términos
de negocio.
◦ Ejemplo:
Como un doctor
Quiero tener una planilla online con la historia clínica de mis
pacientes
De manera de consultarla desde cualquier lugar con
conección a Internet
18.
19. Introducción
● Es un proceso de desarrollo de software.
● Surge a partir del desarrollo guiado por
pruebas (TDD), fusionado con DDD.
● Es una técnica para desarrollar software, pero
puede utilizarse muy eficazmente en el
desarrollo de pruebas automatizadas.
30. Test con BDD
Scenario: Verificar que la página discografía se muestre
Dado un usuario navegando en la página Mi Banda
Cuando hace click en el botón discografía
Entonces puede ver la página discrografía
31. Test con BDD
Scenario: Verificar que la página discografía se muestre
Dado un usuario navegando en la página Mi Banda (PASS)
Cuando hace click en el botón discografía (PASS)
Entonces puede ver la página discografía (FAIL)
Assertion error: La página discografía no fue abierta
32. Componentes de BDD
● Característica (Feature)
◦ Historia (Story)
⚫ Escenario (Scenario)
⚫ Paso (Step)
● Cada historia tiene una narración,
descrita utilizando lenguaje ubicuo
33. Historias de Usuario
User stories are short, simple descriptions of a
feature told from the perspective of the person
who desires the new capability, usually a user
or customer of the system. They typically follow
a simple template:
As a <type of user>
I want <some goal>
so that <some reason>.
38. Conclusiones
● Permiten a las personas no técnicas
involucrarse en el ciclo de pruebas.
● Comprensión del dominio.
● Pruebas automatizadas.
39. Bibliografía
● Kent Beck - Test Driven Development: By Example
● Mike Cohn – Mountain Go At Software. User Stories [Online]
https://www.mountaingoatsoftware.com/agile/user-stories
● John Ferguson Smart - BDD in Action: Behavior-driven
development for the whole software lifecycle
● Mike Cohn – Suceeding with Agile.
● Liz Keogh – Behavior Driven Development course at
slide-share