Slides utilizados durante la charla
"TDD desde las trincheras: teoría y lecciones aprendidas"
https://www.meetup.com/es-ES/Madrid-Scrum-User-Group/events/258185830/
Grabación de la charla: https://youtu.be/_oX7vvSQxI8
5. ¿Qué es TDD?
• Desarrollar a partir de los test
• Escribir primero el test, luego el código que valida el test
• Comenzar from scratch
• Crear la versión más simple del código que haga pasar el test
• Refactorizar
• Baby steps
@leomicheloni
6. Estructura de un test
• Setup
• Ejecución
• Validación
• Cleanup
@leomicheloni
11. Algunas recomendaciones
• Keep unit small
• Reducir el debugging
• Si hay un bug, hacer un test
• El código queda “autodocumentado”
@leomicheloni
12. ¿Qué permite TDD?
• Comenzar sin depender de otros componentes
• Mejorar la comprensión del negocio (fail fast)
• Descubrir la API
• Trabajar por iteraciones (pomodoro)
• Que emerja la arquitectura
• Detectar casos de uso
@leomicheloni
13. Qué requiere?
• Ciertos conocimientos “avanzado” (como IoC)
• Disciplina
• Capacidad para separar el problema
@leomicheloni
14. Resultado
• Pensar la solución a partir del uso
• Mayor confianza en lo entregado
• Mayor felicidad
• Mayor calidad (refactor)
• Evita el sobre-diseño
• Evolución sólida => test
@leomicheloni
16. Experiencias
• Proyectos legacy (funcionalidades nuevas)
• Difícil comenzar desde cero
• Hace falta práctica
• No vale la pena en todo el código (code coverage)
• Hace falta experiencia
• Es necesario conocer ciertas herramientas
• No es simple aplicarlo a todas las áreas (UI, etc.)
• Puede dar una falsa sensación de seguridad
@leomicheloni
17. Grandes preguntas
• ¿Se puede hacer siempre TDD?
• ¿Cualquiera puede hacer TDD?
• ¿Se puede aplicar en toda la aplicación?
• ¿Queda el código “autodocumentado”?
• ¿La aplicación es más confiable?
• ¿Aumenta el costo de mantenimiento?
• ¿Se puede aplicar en proyectos existentes?
@leomicheloni