2. Agenda
• Desarrollo Guiado por Pruebas (TDD)
o Problemas con TDD
• Desarrollo Guiado por Comportamientos
o Hacer sistemas que Importen
o Historias
• Uso de un lenguaje común
o Proceso de desarrollo con BDD
o Herramientas
08/11/12 www.agiletour.com
3. Agenda
• Integración con métodos agiles
o Planificación guiada por aceptación de pruebas
o Desarrollo guiado por aceptación de pruebas
08/11/12 www.agiletour.com
5. El Problema con TDD
• ¿Por dónde empezar?
• ¿Qué se debe probar?
• ¿Cuál es el alcance de las pruebas?
• ¿Cómo entender el por que falla una prueba?
• Las pruebas unitarias no son suficiente
08/11/12 www.agiletour.com
6. Desarrollo Guiado por Comportamiento
• Restructuración de TDD
• Implementar una aplicación describiendo el
comportamiento que esta debe tener
o Entender el contexto
o Entender los usuarios
08/11/12 www.agiletour.com
7. Hacer Sistemas que Importen
• Suficiente es Suficiente
• Entregar Valor al Stakeholder
• Todo es comportamiento
08/11/12 www.agiletour.com
9. Uso de un Lenguaje Común
Como un <Usuario, Rol>
Quiero <Funcionalidad>
Para que <Valor>
Dado <un contexto inicial>
Cuando <ocurre un evento>
Entonces <asegura un resultado>
08/11/12 www.agiletour.com
10. Ejemplos
Funcionalidad: Recepción de Mercancía
Como un gerente de inventario
Quiero dar ingreso de mercancía al almacén
Para poder hacer disponible la mercancía a la
venta
08/11/12 www.agiletour.com
11. Ejemplos
Escenario: Mercancía es correcta y completa
Dado que recibo nueva mercancía
Y existe una orden de compra para esa mercancía
Cuando verifico la mercancía
Y la mercancía es correcta
Y las cantidades son correctas
Entonces le doy ingreso a la mercancía al almacén
08/11/12 www.agiletour.com
12. Ejemplos
Escenario: Mercancía es correcta pero incompleta
Dado que recibo nueva mercancía
Y existe una orden de compra para esa mercancía
Cuando verifico la mercancía
Y la mercancía es correcta
Y las cantidades incorrectas
Entonces le doy ingreso a la mercancía al almacén
Y genero una nota de crédito por el faltante
08/11/12 www.agiletour.com
13. Proceso de Desarrollo BDD
Funcionalidad
Escenario
Pasos
Codificación
Refactorización
08/11/12 www.agiletour.com
15. Integración con Métodos Agiles
• Planificación Guiada por Aceptación de Pruebas
• Desarrollo Guiado por Aceptación de Pruebas
• Historias como herramientas de planificación
• Validación de las historias con los stakeholders
08/11/12 www.agiletour.com
16. Conclusiones
• Entregar productos:
o De calidad
o Con valor para el usuario
• Facilitar la depuración del código
• Pruebas de regresión
• Documentación
08/11/12 www.agiletour.com
17. Referencias
• Chelimsky, D., Astels, D., Dennis, Z., Hellesøy, A.,
Helmkamp, B., & North, D. (2010). The RSpec Book. The
Pragmatic Programmers LLC.
• North, D. (2006). DanNorth.net. Recuperado el 14 de Junio
de 2012, de Introducing BDD:
http://dannorth.net/introducing-bdd/
• Sommerville, I. (2010). Ingeniería del software. Adison
Wesley.
08/11/12 www.agiletour.com