Haciendo BDD con MSpec

13
Haciendo BDD con Mspec … de manera efectiva Jorge Gamba Consultor en Desarrollo de Software Community Manager Web: http://jorgegamba.com Twitter: @jorgegamba Correo: [email protected]

Transcript of Haciendo BDD con MSpec

Page 1: Haciendo BDD con MSpec

Haciendo BDD con Mspec… de manera efectiva

Jorge Gamba

Consultor en Desarrollo de SoftwareCommunity Manager

Web: http://jorgegamba.comTwitter: @jorgegambaCorreo: [email protected]

Page 2: Haciendo BDD con MSpec

Agenda

BDD

Introducción

Relación con ATDD, DDD y TDD

Historias y Criterios de Aceptación

Estilo Context/Specification

Conceptos básicos

Recomendaciones

MSpec

Introducción

“Hola mundo”

Uso

Ejercicio de aplicación

Integración con herramientas

Recomendaciones

Page 3: Haciendo BDD con MSpec

¿BD… qué?

Page 4: Haciendo BDD con MSpec

Antes

http://altnet-hispano.pbworks.com/van-2010-08-14-user-stories

http://altnet-hispano.pbworks.com/van-2010-05-15-bdd

Page 5: Haciendo BDD con MSpec

Definición

«Behaviour-Driven Development (BDD) is an evolution in the thinking behind TestDrivenDevelopment and AcceptanceTestDrivenPlanning»

Dan Northhttp://behaviour-driven.org/

Page 6: Haciendo BDD con MSpec

ATDD

DDD

TDDTest-Driven Development

Domain-Driven Design

Acceptance Test-DrivenDevelopment

BDD

Page 7: Haciendo BDD con MSpec

Análisis

Implementación

Diseño

Pruebas

ATDD DDD TDD+ +

Page 8: Haciendo BDD con MSpec

ATDD TDD

Cliente Desarrollador

Aceptación Implementación

Especificaciones Funcionales Especificaciones Técnicas

[Yellow]-Red-Green-Refactor Red-Green-Refactor

Pruebas de Integración Pruebas Unitarias

Preparación Improvización

Alto Nivel Bajo Nivel

SpecFlow, StorEvil, SotoryQ … MSpec

Page 9: Haciendo BDD con MSpec

Historias

Para …[Motivación]

Como un …[Rol]

Quiero …[Objetivo]

Page 10: Haciendo BDD con MSpec

Criterios de Aceptación

Given/When/ThenDado que [contexto]Cuando [evento]Entonces [consecuencia]

Context/SpecificationCuando [Evento + Contexto]Debería [Resultados esperados]

Page 11: Haciendo BDD con MSpec

Codificación por ejemplos (a.k.a. TDD)

Clase de test/spec por cada escenario no por archivo de clase

DRY no es prioridad

La legibilidad es importante

Page 12: Haciendo BDD con MSpec

Machine.Specificationsa.k.a. MSpec

http://github.com/machine/machine.specifications

Aaron Jensenhttp://codebetter.com/blogs/aaron.jensen/

Alexander Großhttp://therightstuff.de/

Page 13: Haciendo BDD con MSpec

¡Muchas Gracias!

Jorge Gamba

Web: http://jorgegamba.comTwitter: @jorgegambaCorreo: [email protected]