tdd, una guía de supervivencia
DESCRIPTION
Alfredo Casado, Alberto PeñaTRANSCRIPT
![Page 1: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/1.jpg)
TDD GUIA DE SUPERVIVENCIA
Un relato de horrores... by @AlfredoCasado
martes 1 de noviembre de 2011
![Page 2: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/2.jpg)
Un poco de contexto...
Desarrollo de producto
Media de 4 desarrolladores muy motivados
Sin experiencia con TDD
JAVA (aka the new cobol)
Muchas lineas, más de 200k (test incluidos)
martes 1 de noviembre de 2011
![Page 3: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/3.jpg)
martes 1 de noviembre de 2011
![Page 4: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/4.jpg)
martes 1 de noviembre de 2011
![Page 5: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/5.jpg)
martes 1 de noviembre de 2011
![Page 6: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/6.jpg)
PRIMER HORROR¡Rojo significa que te pares!
martes 1 de noviembre de 2011
![Page 7: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/7.jpg)
PRIMER HORROR
COMMIT AND...
RUN!!
martes 1 de noviembre de 2011
![Page 8: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/8.jpg)
SEGUNDO HORROR
SUT
mock
mock
mock
mock
mock
mock
mock
mock
La obsesión unitaria
martes 1 de noviembre de 2011
![Page 9: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/9.jpg)
SEGUNDO HORROR
Sólo es un problema... cuando no sabes programar
Mucho acoplamiento => demasiados mocks
¿ley de demeter?, ¿de quien? => mocks que devuelven mocks que devuelven mocks...
Depender de abstracciones al extremo => una interfaz, una implementación
No escuchar a tus test => si el test se complica demasiado... revisa tu diseño.
Escribir estos test despues del código => SUICIDIO.
martes 1 de noviembre de 2011
![Page 10: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/10.jpg)
TERCER HORRORMis test se parecen mucho...
(duplicación primer capitulo)
martes 1 de noviembre de 2011
![Page 11: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/11.jpg)
TERCER HORRORduplicación de fixtures
En test de integración o end-to-end
martes 1 de noviembre de 2011
![Page 12: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/12.jpg)
TERCER HORRORSolución aceptable: @Rules (JUnit 4.7+)
martes 1 de noviembre de 2011
![Page 13: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/13.jpg)
CUARTO HORRORduplicación segundo capitulo
Mismo API debe soportar varias versiones de un esquema de base de datos
Esquema v1.0
Esquema v1.1
APIApp Cliente
martes 1 de noviembre de 2011
![Page 14: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/14.jpg)
CUARTO HORROR¿Herencia?
martes 1 de noviembre de 2011
![Page 15: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/15.jpg)
CUARTO HORRORExtendiendo JUnit con nuestro propio runner
El test se ejecutará dos veces, una para cada versión de base de datos.
martes 1 de noviembre de 2011
![Page 16: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/16.jpg)
QUINTO HORRORFicheros con datos de test, ¡gran idea!
martes 1 de noviembre de 2011
![Page 17: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/17.jpg)
QUINTO HORRORTest que no tienen given
Test data builder
martes 1 de noviembre de 2011
![Page 18: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/18.jpg)
SEXTO HORROR
¿Donde están mis test?
martes 1 de noviembre de 2011
![Page 19: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/19.jpg)
SEXTO HORRORCon los test unitarios es fácil
¿Los de integración donde van?, ¿y los funcionales?
¿organizar por sprints?, ¿por funcionalidad?, ¿test que resuelven bugs aparte?, ¿en el mismo proyecto?, ¿en un
proyecto para test?
martes 1 de noviembre de 2011
![Page 20: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/20.jpg)
SEPTIMO HORROR
pedazo de UI, y ahora vas y lo pruebas...
martes 1 de noviembre de 2011
![Page 21: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/21.jpg)
reloj o algo similar
OCTAVO HORROR¿No llevarás prisa?, el build tarda un ratito...
martes 1 de noviembre de 2011
![Page 22: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/22.jpg)
un doctor, incluso el doctor de los simpson?
NOVENO HORROR¿doctor que me pasa?
usted tiene una... NullPointerException!
martes 1 de noviembre de 2011
![Page 23: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/23.jpg)
NOVENO HORRORLos test se diseñan para fallar
martes 1 de noviembre de 2011
![Page 24: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/24.jpg)
NOVENO HORRORLas excepciones hay que capturarlas!
martes 1 de noviembre de 2011
![Page 25: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/25.jpg)
DECIMO HORROR¿Que probará este test?
Esto lo único que “prueba” es que no sabes hacer test
martes 1 de noviembre de 2011
![Page 26: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/26.jpg)
DECIMO HORROR
¿No falta algo?, ¿y los assert?
martes 1 de noviembre de 2011
![Page 27: TDD, Una guía de supervivencia](https://reader033.vdocuments.mx/reader033/viewer/2022050805/556c54fdd8b42acc228b4835/html5/thumbnails/27.jpg)
Terminando:
TDD no es un fin, es un camino. No se si hemos avanzado mucho o poco, pero si se que estamos muy lejos de donde empezamos y más lejos aún de donde terminaremos llegando.
La mejora continua no acaba con las “retrospectivas”, empieza con las retrospectivas y acaba con las manos en el teclado.
martes 1 de noviembre de 2011