TDD                                GUIA DE SUPERVIVENCIA                       Un relato de horrores... by @AlfredoCasadom...
Un poco de contexto...                        Desarrollo de producto                        Media de 4 desarrolladores muy...
martes 1 de noviembre de 2011
martes 1 de noviembre de 2011
martes 1 de noviembre de 2011
PRIMER HORROR                                ¡Rojo significa que te pares!martes 1 de noviembre de 2011
PRIMER HORROR                                COMMIT AND...                                                RUN!!martes 1 de...
SEGUNDO HORROR                                La obsesión unitaria                                           mock         ...
SEGUNDO HORROR                Sólo es un problema... cuando no sabes programar                          Mucho acoplamiento...
TERCER HORROR                                Mis test se parecen mucho...                                  (duplicación pr...
TERCER HORROR                                   duplicación de fixtures                                En test de integraci...
TERCER HORROR                                Solución aceptable: @Rules (JUnit 4.7+)martes 1 de noviembre de 2011
CUARTO HORROR                                duplicación segundo capitulo   Mismo API debe soportar varias versiones de un...
CUARTO HORROR                                   ¿Herencia?martes 1 de noviembre de 2011
CUARTO HORROR                    Extendiendo JUnit con nuestro propio runner El test se ejecutará dos veces, una para cada...
QUINTO HORROR                                Ficheros con datos de test, ¡gran idea!martes 1 de noviembre de 2011
QUINTO HORROR           Test que no tienen given                                        Test data buildermartes 1 de novie...
SEXTO HORROR                                ¿Donde están mis test?martes 1 de noviembre de 2011
SEXTO HORROR                                Con los test unitarios es fácil               ¿Los de integración donde van?, ...
SEPTIMO HORROR                        pedazo de UI, y ahora vas y lo pruebas...martes 1 de noviembre de 2011
OCTAVO HORROR                         ¿No llevarás prisa?, el build tarda un ratito...                                    ...
NOVENO HORROR                                 ¿doctor que me pasa?                                      un doctor, incluso...
NOVENO HORROR                                Los test se diseñan para fallarmartes 1 de noviembre de 2011
NOVENO HORROR                                Las excepciones hay que capturarlas!martes 1 de noviembre de 2011
DECIMO HORROR                     ¿Que probará este test?         Esto lo único que “prueba” es que no sabes hacer testmar...
DECIMO HORROR                                ¿No falta algo?, ¿y los assert?martes 1 de noviembre de 2011
Terminando:                                TDD no es un fin, es un camino. No se si hemos avanzado mucho o poco, pero si s...
Upcoming SlideShare
Loading in …5
×

TDD, Una guía de supervivencia

1,207 views

Published on

Alfredo Casado, Alberto Peña

1 Comment
2 Likes
Statistics
Notes
  • TDD es hacer primero los tests, codificar y refactoritzar, y lo que aqui se habla no tiene que ver con eso. Es una charla sobre testing, no TDD
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
1,207
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
23
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

TDD, Una guía de supervivencia

  1. 1. TDD GUIA DE SUPERVIVENCIA Un relato de horrores... by @AlfredoCasadomartes 1 de noviembre de 2011
  2. 2. 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
  3. 3. martes 1 de noviembre de 2011
  4. 4. martes 1 de noviembre de 2011
  5. 5. martes 1 de noviembre de 2011
  6. 6. PRIMER HORROR ¡Rojo significa que te pares!martes 1 de noviembre de 2011
  7. 7. PRIMER HORROR COMMIT AND... RUN!!martes 1 de noviembre de 2011
  8. 8. SEGUNDO HORROR La obsesión unitaria mock mock mock mock SUT mock mock mock mockmartes 1 de noviembre de 2011
  9. 9. 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
  10. 10. TERCER HORROR Mis test se parecen mucho... (duplicación primer capitulo)martes 1 de noviembre de 2011
  11. 11. TERCER HORROR duplicación de fixtures En test de integración o end-to-endmartes 1 de noviembre de 2011
  12. 12. TERCER HORROR Solución aceptable: @Rules (JUnit 4.7+)martes 1 de noviembre de 2011
  13. 13. CUARTO HORROR duplicación segundo capitulo Mismo API debe soportar varias versiones de un esquema de base de datos Esquema v1.0 App API Cliente Esquema v1.1martes 1 de noviembre de 2011
  14. 14. CUARTO HORROR ¿Herencia?martes 1 de noviembre de 2011
  15. 15. CUARTO HORROR Extendiendo 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
  16. 16. QUINTO HORROR Ficheros con datos de test, ¡gran idea!martes 1 de noviembre de 2011
  17. 17. QUINTO HORROR Test que no tienen given Test data buildermartes 1 de noviembre de 2011
  18. 18. SEXTO HORROR ¿Donde están mis test?martes 1 de noviembre de 2011
  19. 19. SEXTO HORROR Con 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
  20. 20. SEPTIMO HORROR pedazo de UI, y ahora vas y lo pruebas...martes 1 de noviembre de 2011
  21. 21. OCTAVO HORROR ¿No llevarás prisa?, el build tarda un ratito... reloj o algo similarmartes 1 de noviembre de 2011
  22. 22. NOVENO HORROR ¿doctor que me pasa? un doctor, incluso el doctor de los simpson? usted tiene una... NullPointerException!martes 1 de noviembre de 2011
  23. 23. NOVENO HORROR Los test se diseñan para fallarmartes 1 de noviembre de 2011
  24. 24. NOVENO HORROR Las excepciones hay que capturarlas!martes 1 de noviembre de 2011
  25. 25. DECIMO HORROR ¿Que probará este test? Esto lo único que “prueba” es que no sabes hacer testmartes 1 de noviembre de 2011
  26. 26. DECIMO HORROR ¿No falta algo?, ¿y los assert?martes 1 de noviembre de 2011
  27. 27. 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

×