Slide 1

Slide 1 text

Test Driven Development (TDD) Behaviour Driven Development (BDD) MP. Oscar Centeno Diciembre, 2014 …Test early, test often…

Slide 2

Slide 2 text

Objetivos de la charla • Exponer la necesidad • Exponer principios • Mostrar demostraciones con herramientas

Slide 3

Slide 3 text

¿Porque? “Know why, not just how.” www.Agileforall.com

Slide 4

Slide 4 text

Proceso tradicional de desarrollo

Slide 5

Slide 5 text

Un proceso TDD ¿Cómo crear un producto sin defectos? Mejore el proceso como un todo. Testing Diseno / Codificacion Colaboracion Aceptacion Mantenimiento TDD

Slide 6

Slide 6 text

Mejore todo el proceso • Calidad desde el inicio • Divide y vencerás • Red de seguridad para el software • Confianza • ¿Ya terminé? TDD

Slide 7

Slide 7 text

Calidad Right code Code right

Slide 8

Slide 8 text

El código, correctamente • “producimos código bien diseñado, bien probado y bien factorizado, y lo hacemos en pasos pequeños y verificables” James Shore Code Right

Slide 9

Slide 9 text

Prácticas para construir el codigo correctamente • Programe en pasos pequeños verificables • Pruebas unitarias • Automatice pruebas unitarias • Aplique TDD a cada unidad: Test-First Design Code Right Código unitario Pruebas Assert (esperado, obtenido)?

Slide 10

Slide 10 text

Test Driven Development Code Right

Slide 11

Slide 11 text

Test Driven Development • Demo: Fibonacci Code right

Slide 12

Slide 12 text

Alcance de TDD • Clases de aplicación • Base de datos • Integración de componentes • Rendimiento • Escenarios funcionales

Slide 13

Slide 13 text

¿Porqué funciona? • TDD hace claro el criterio de aceptación • Elimina incertidumbre en expectativas del usuario • Integra al Testing durante todo el proceso • Feedback rápido y frecuente • El software es más mantenible. Code Right Right Code

Slide 14

Slide 14 text

Calidad Right code Code right

Slide 15

Slide 15 text

El código correcto • “…si no es cuidadoso, es muy sencillo que un desarrollador construya el producto equivocado.” www.agileforall.com Right Code

Slide 16

Slide 16 text

Correct Code • Exprese pruebas de aceptación con el usuario antes de la programación. • Exprese reglas complejas con ejemplos concretos • ¡No asuma! (ambigüedad ≈ 0) Right Code

Slide 17

Slide 17 text

La Historia Como Pedro, el cliente Quiero Hacer un retiro de la cuenta Con el fin de tener efectivo.

Slide 18

Slide 18 text

Ejemplo Dado Una cuenta con saldo 100 dólares Cuando se hace un retiro de 55 dólares. Entonces el saldo restante es de 45 dólares.

Slide 19

Slide 19 text

Customer Tests / Specs Demo SpecFlow Right Code

Slide 20

Slide 20 text

En resumen Test Driven Development El código correctamente El código correcto Customer Tests / Specs Unit Tests ¿ Pruebas funcionales de aceptación? ¿ Pruebas de carga? ¿Pruebas de integración? ¿ Pruebas de rendimiento?

Slide 21

Slide 21 text

Objetivos de la charla • Exponer la necesidad • Exponer principios • Mostrar demostraciones con herramientas

Slide 22

Slide 22 text

Referencias