Introducción a Test Driven Development (TDD)
Un desarrollador profesional necesita usar métodos y herramientas profesionales. TDD es un método de desarrollo que produce código de calidad y excelentes baterías de pruebas automáticas cuando se practica correctamente.
TDD es una práctica del método XP (eXtremeProgramming). Las prácticas no tienen sentido si no se entienden los valores y principios que promueven. Por eso en realidad este es un curso de Introducción a XP. Además de practicar TDD, practi- camos PairProgramming e incluso CollectiveCodeOwnership.
OBJETIVOS
La forma de impartir el curso es programando prácticamente todo el tiempo con la supervisión y la guía del experto. La diferencia con leer libros o ver vídeos es que hay a tu lado un experto para corregir tus errores y acelerar el proceso de aprendizaje, minimizando riesgos a la hora de luego poner en práctica el método en el día a día.
Dirigido a
Este es un curso para personas que sepan programar. Fundamentalmente programadores pero también tes- ters que quieran conocer más sobre calidad de código y pruebas automáticas. Lo que hace falta es venir con ganas y la mente abierta. Si nunca has probado TDD antes, te sorprenderá.
Cada alumno debe asistir al curso con su portátil y las herramientas de desarrollo que use habitualmente, ya instaladas. A ser posible que también tenga instalado Git o Mercurial o ambas.
Se trabaja en pares con lo cual es buena idea crear un usuario nuevo para el curso, como para poder rotar de unas má- quinas a otras sin estar preocupados por privacidad de la cuenta.
Temario del curso
I - INTRODUCCIÓN
- Introducción a XP: Valores, Principios y Prácticas • Introducción a los tests unitarios
- Refactoring
- Naming and duplication
- Less Surprise Principle y SOLID design principles • DesignPatterns
- Introducción a TDD Agil, etc.
II - MÉTRICAS DEL SOFTWARE
- Practicando TDD con state-based validation
- Diseño emergente y arquitectura
- Integration tests
- Mock objects, test stubs, test spies
- Practicando TDD con interaction-based tests • Test doubles frameworks
- End-to-end tests
- Conclusiones