El documento presenta una visión práctica del Behavior Driven Development (BDD) para agilizar el desarrollo de software. Explica que el BDD es un conjunto de prácticas para integrar las historias de usuario con la automatización de pruebas funcionales a través de la descripción del comportamiento del software. También describe las ventajas del BDD, cómo funciona, las diferencias con el Test Driven Development, buenas prácticas y el uso de la herramienta Specflow como ejemplo. El objetivo del BDD es crear software que genere valor para los
2. “Consultor en el área de calidad de software, automatización de pruebas,
ALM/DevOps y gerencia de proyectos. Profesor de graduación y pos-
graduación de la Universidad Veiga de Almeida. Ministra ponencias y
webinars en asuntos relativos de automatización de desarrollo, pruebas y
aceptación de software. Experiencia de participación en proyectos de
consultoria, desarrollo de software e implantación de procesos en empresas
como a Accenture, Ipiranga, Globosat, Oi Móvel e Oi Fixa, Banco BBM,
Telefonica-SP, Vivo, Banco Modal e Brasil Telecom. En el caso de las
empresas de telecomunicaciones, las empresas de telefonía móvil y de
telefonía móvil, En el caso de las empresas de telecomunicaciones, como
Telemar y Embratel y en la implantación de la arquitectura del Sistema de
Pago Brasileño (SPB) en el Banco Central, actuó como líder de proyectos y
administrador de bases de datos en el inicio de diversas empresas de
telecomunicaciones, como Telemar y Embratel.
Minibio
•2
3. Definición de BDD
Como funciona el BDD
Ventajas
Dudas comunes
Diferencias entre BDD y TDD
Buenas prácticas
Specflow como Herramienta de BDD
Ejemplo de Specflow
Agenda
•3
4. BDD - Definición
“Behavior-driven development Trata
de la implementación de una aplicación
a través de la descripción de su
comportamiento segun la perspectiva de
sus stakeholders”
-- Dan North
5. Crear software que
importa!
Tiene valor de negócio tangible
Entrega incremental
Facil de mantener y administrar
Facil de entender y comunicar
Objetivo de Valor
6. Es un conjunto de prácticas ágiles para agilizar el desarrollo de
software a través de la integración de las User Stories definidas
para el software con la automatización de las pruebas funcionales
del software desarrollado.
El BDD es una evolución hecha a partir de la implantación de
técnicas TDD (Test Driven Development).
El BDD no es una metodología de desarrollo de software, pero
incorpora y mejora las ideas de muchas de esas metodologías.
En otras palabras, que es BDD?
•6
7. Funcionamiento del BDD
•7
Necesidad de
implantación de
una
funcionalidad de
backlog
Levantamiento
de User Stories
como Usuários y
partes
interesadas
Descripción de
dos escenarios
de
comportamiento
(features)
Levantamiento
de dos ejemplos
concretos como
resultado
esperado de
User Stories
Definición de
dos pruebas
funcionales
automatizadas
com base en los
Ejemplos
8. Levantamiento de User Stories
•8
Ideas
Retroalimentación
Datos
Historias de Usuários
Nuevas o actualizadas
Dueño del producto
Dev team
Tester
9. Escenario: Transferir dinero para una conta de ahorros
GIVEN la cuenta de número <número> con el límite <límite> y el saldo <saldo>
WHEN el dueño realiza el depósito en el valor de <depósito> en la cuenta
AND el dueño realiza el primer saque en el valor de <first_saque> en la cuenta
AND el dueño realiza el segundo saque en el valor de <segundo_saque> en la cuenta
THEN el dueño tiene el saldo en el valor de <saldo_esperado> en la cuenta
Ejemplos:
| número | limite | saldo | deposito | primer lugar | segundo lugar | saldo esperado |
| 111 | 1000 | 0 | 100 | 10 | 10 | 80 |
| 222 | 1000 | 0 | 200 | 10 | 10 | 180 |
Ejemplo de una implementación BDD
(Notación Gherkin)
•9
10. BDD ofrece un nivel de entendimiento común entre expertos de dominio,
product owners, desarrolladores y probadores.
Agilizar el proceso disminuyendo el gap entre los requisitos / User Stories
y la automatización de las pruebas de aceptación del usuario
La notación simple utilizada por el BDD - Given-Then-When - para las
pruebas de aceptación son próximas al entendimiento de los involucrados
en el proyecto
Garantiza la regresión de las funcionalidades después de la re-ejecución de
todas las pruebas de aceptación.
Acelera la creación de las pruebas con la generación automática de los
pasos del código de pruebas a partir de los escenarios descritos
Ventajas y Benefícios de BDD
•10
11. TDD- Ejercita el código vinculado a cada método del objeto.
BDD -valida si el resultado presentado por la UI está de acuerdo
con el comportamiento definido en los ejemplos en el User Story.
Diferencias fundamentales del BDD x
TDD
•11
10
0
Pasó por el tratamiento
de Excepciones?
10
0
Popup con el mensaje
"Error: División no válida"?
12. Implementar la definición de User Stories como detalle de requisitos
Envolver al usuario en la definición de los ejemplos concretos para
las pruebas
Puntuar la historia de usuario mediante la definición de las pruebas
de aceptación para servir como base para la ejecución de las
pruebas en el BDD
Implementar una arquitectura con la herramienta BDD (Specflow /
Cucumber / Jbehave) que se ejecuta en varias plataformas
Puntuar las tareas de mantenimiento para contemplar el
mantenimiento de los escenarios implementados en la herramienta
de BDD
Por donde comienzo?
•12
13. Buenas prácticas para la
implementación del BDD
•13
Involucramiento
en las User
Stories
User Stories
siguiendo el
estándar
INVEST
Coach
Arquitectura
Herramienta
BDD
Entregar el BDD
en Sprint
14. Es una herramienta Opensource integrada al ecosistema .Net que
genera y ejecuta pruebas definidas a partir del patrón Given-When-
Then
Es totalmente integrado al entorno Visual Studio contemplando
plantillas de proyectos que pueden ser instanciadas en el propio
Visual Studio.
Soporta marcos de pruebas como MSTest y Nunit (2 y 3)
Utiliza como notación de ejecución de pruebas el WebDriver del
Selenium, ampliamente conocido en el mercado.
Después de la configuración correcta, puede ejecutar
multibrowsers (Chrome, IE y Firefox)
Que és Specflow?
•14
15. Definición de
las
características
Definición de
los escenarios
Definición de
los pasos
Código de
implementación
de los pasos
Biblioteca de
Automatización
de IU
Ejecución de
los escenarios
Analizar los
defectos
generados por
la ejecución de
los escenarios
Corregir el
código de
producción
para la
resolución de
defectos
Dinamica de SpecFlow
•15
Orientación de
Negócios
Orientación
Técnica
Orientación de
NegóciosOrientación
Técnica
21. El BDD es una realidad en el mercado y posee una herramienta
fuerte
Una de las pruebas automatizadas en la versión funcional a través
de BDD y de la técnica de visión a través de TDD, sin potencial
alguno para calmar un software de calidad que se entrega de
acuerdo con las premisas principales.
Temiendo que haya invertido en tiempo y recursos una curva de
aprendizaje para los primeros proyectos utilizando BDD.
El ideal es papeles diferentes para una creación de las pruebas TDD
y otro para la creación de las pruebas BDD
Conclusión
•21