• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • 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
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
672
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
17
Comments
1
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. TDD GUIA DE SUPERVIVENCIA Un relato de horrores... by @AlfredoCasadomartes 1 de noviembre de 2011
  • 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. martes 1 de noviembre de 2011
  • 4. martes 1 de noviembre de 2011
  • 5. martes 1 de noviembre de 2011
  • 6. PRIMER HORROR ¡Rojo significa que te pares!martes 1 de noviembre de 2011
  • 7. PRIMER HORROR COMMIT AND... RUN!!martes 1 de noviembre de 2011
  • 8. SEGUNDO HORROR La obsesión unitaria mock mock mock mock SUT mock mock mock mockmartes 1 de noviembre de 2011
  • 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. TERCER HORROR Mis test se parecen mucho... (duplicación primer capitulo)martes 1 de noviembre de 2011
  • 11. TERCER HORROR duplicación de fixtures En test de integración o end-to-endmartes 1 de noviembre de 2011
  • 12. TERCER HORROR Solución aceptable: @Rules (JUnit 4.7+)martes 1 de noviembre de 2011
  • 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. CUARTO HORROR ¿Herencia?martes 1 de noviembre de 2011
  • 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. QUINTO HORROR Ficheros con datos de test, ¡gran idea!martes 1 de noviembre de 2011
  • 17. QUINTO HORROR Test que no tienen given Test data buildermartes 1 de noviembre de 2011
  • 18. SEXTO HORROR ¿Donde están mis test?martes 1 de noviembre de 2011
  • 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. SEPTIMO HORROR pedazo de UI, y ahora vas y lo pruebas...martes 1 de noviembre de 2011
  • 21. OCTAVO HORROR ¿No llevarás prisa?, el build tarda un ratito... reloj o algo similarmartes 1 de noviembre de 2011
  • 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. NOVENO HORROR Los test se diseñan para fallarmartes 1 de noviembre de 2011
  • 24. NOVENO HORROR Las excepciones hay que capturarlas!martes 1 de noviembre de 2011
  • 25. DECIMO HORROR ¿Que probará este test? Esto lo único que “prueba” es que no sabes hacer testmartes 1 de noviembre de 2011
  • 26. DECIMO HORROR ¿No falta algo?, ¿y los assert?martes 1 de noviembre de 2011
  • 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