Download - Cómo aplicar TDD. Almería 13/05/2014
![Page 2: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/2.jpg)
¿Quién soy yo? - Blogs
Blogs: Proyectos:
JGraphT
HootboardGame
![Page 3: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/3.jpg)
¿Quién soy yo? - Proyectos
Congresos: Katas:
![Page 4: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/4.jpg)
Índice
¿Por qué utilizar TDD?
¿Cómo aplicar TDD?
TDD’s Darkside
![Page 5: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/5.jpg)
Índice
¿Por qué utilizar TDD?
¿Cómo aplicar TDD?
TDD Jam
![Page 6: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/6.jpg)
• Sin pruebas
• No veía fácilmente el diseño
• Fallaba por sorpresa sin saber por qué
• Cambiaba por cambiar.
• Apechugar con las malas decisiones.
• No avanzaba.
• Presionado por fecha límite.
• Me sentía mal.
• Un cuadro típico de necesito TDD.
¿Por qué TDD?
![Page 7: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/7.jpg)
Todo el software mienteCambia
![Page 8: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/8.jpg)
• Todos nos equivocamos
“No fracasé, sólo descubrí 999 maneras de como no
hacer una bombilla.”
Todo el software mienteCambia
![Page 9: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/9.jpg)
¿Por qué TDD?
NO
![Page 10: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/10.jpg)
Probar los actores
![Page 11: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/11.jpg)
¿Qué es TDD?
![Page 12: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/12.jpg)
¿Qué es TDD?
![Page 13: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/13.jpg)
¿Qué es TDD?
![Page 14: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/14.jpg)
¿Qué es TDD?
1. You are not allowed to write any production code unless it is to make a failing unit test pass.
2. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures.
3. You are not allowed to write any more production code than is sufficient to pass the one failing unit test.
![Page 15: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/15.jpg)
TDD no es probar
Desarrollador TDD Tester
Escribo una prueba con un observador Vale
Escribo una prueba con dos observadores Es lo mismo !!!!
![Page 16: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/16.jpg)
Índice
¿Por qué utilizar TDD?
¿Cómo aplicar TDD?
TDD Jam
![Page 17: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/17.jpg)
2. El Proceso TDD
El proceso de TDD
![Page 18: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/18.jpg)
2. El Proceso TDD
¿Por qué?
![Page 19: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/19.jpg)
Sobre escribir pruebas
• Assert first• Pruebas
extremadamente sencillas
• Prueba una única cosa• Valores de entrada
concreto• DRY: Don’r Repeat
Yourself
![Page 20: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/20.jpg)
Sobre refactorizar
• Elimina el código duplicado.
• Aumenta la expresividad de tu código.
• Sustituye especificaciones por detalles.
• Elimina malos olores.
![Page 21: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/21.jpg)
Dirigir TDD
![Page 22: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/22.jpg)
¿A dónde me lleva TDD?
• Técnica Presentator-first, comienza .• Domain-driven development / arquitectura
hexagonal / puertos y adaptadores• No empieces por la base de datos.• Objetos humildes que huyen de tu framework.• Refactorizar a patrones de diseño• GUIs anoréxicas.
![Page 23: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/23.jpg)
TDD Roadmap
Continous integration
![Page 24: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/24.jpg)
Herramientas
![Page 25: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/25.jpg)
25
TDD the Dark-Side
![Page 26: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/26.jpg)
TDD en las trincheras
Every unit test you write is not production code solving someone's problem.
![Page 27: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/27.jpg)
TDD’s Darside
• ¿Y si no sabes lo que quieres?• Resultados parciales• Double-fest• Ir poco a poco.• Indirección.• Constelación de clases.• Desperdicio de pruebas• TDD es más lento.
![Page 28: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/28.jpg)
TDD is hot…. now
![Page 29: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/29.jpg)
Índice
¿Por qué utilizar TDD?
¿Cómo aplicar TDD?
TDD Jam
Para terminar
![Page 30: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/30.jpg)
Conclusiones
Pruébalo y elige
![Page 31: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/31.jpg)
Te necesitamos
![Page 32: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/32.jpg)
Extra
10.000 líneas de código C#... Comprobado…. 124 assemblies .NET generados…. Comprobado…. 52 scripts de construcción… comprobado
Ahora que mis pruebas unitarias están escritas puedo empezar a construir mis componentes.
![Page 33: Cómo aplicar TDD. Almería 13/05/2014](https://reader038.vdocuments.co/reader038/viewer/2022103001/55843b33d8b42abf1e8b4c3a/html5/thumbnails/33.jpg)
33
Enlaces
• Blog: http://iwt2-javierj.tumblr.com/• Libro:
http://www.iwt2.org/web/opencms/IWT2/comunidad/LibroTDD/?locale=es
• GameUS: http://www.gameus.es/• IWT2 DojoUS:
http://www.iwt2.org/web/opencms/IWT2/comunidad/dojous/?locale=es
• Twitter: @IWT2_Javier/ @GameUsSev / @TDDPractico Fin