Curso de TDD

Formación práctica para aprender las técnicas de TDD: Desarrollo Dirigido por Pruebas
Material disponible
Avanzado
5 Clases 9 h
89€
69€
Precio en promoción
TDD o Desarrollo dirigido por Pruebas es una práctica que busca la mejora del flujo de desarrollo del software, basada en dos pilares fundamentales: La escritura de las pruebas antes del código de la funcionalidad y las técnicas de refactorización. Mediante TDD el diseño emerge durante el desarrollo, haciendo posible un flujo de trabajo ágil y eficiente.

Este curso de TDD tiene un marcado aspecto práctico para aprender las técnicas mediante ejercicios inspirados en los propuestos por los mismos autores de la técnica. Gracias a este curso el estudiante podrá adquirir competencias avanzadas, con una alta demanda en el mercado laboral.

Qué aprenderé en el Curso de TDD

  • Se aprenderá cómo sacar partido de TDD de forma practica, cuándo apoyarse más en la técnica y cuándo menos.
  • Se tratará de aterrizar qué tratan los autores de comunicar sobre el TDD, y qué no.
  • El estudiante podrá disipar ruido sobre los debates que hay en torno a la validez de la técnica.

Objetivos del curso

El objetivo del Curso de TDD es explicar principalmente mediante ejercicios el proceso de uso de TDD. El estudiante podrá aprender las técnicas de TDD de manera práctica para el desarrollo, sobre todo, de dominio. Las clases serán autoconclusivas, teniendo estructura de Crash Course. Cada sesión girará en torno a uno de los valores de TDD propuestos por Kent Beck, con un ejercicio preparado para ensalzar ese valor concreto.

Por qué debes aprender TDD

  • El Desarrollo Guiado por Pruebas es una de las técnicas habituales de las empresas para los proyectos de software y es una de las demandas para entrar en equipos de desarrollo avanzados.
  • Es importante entender qué es TDD y qué no es, para evitar malas interpretaciones.
  • Haciendo este curso el estudiante podrá entender qué es lo que necesita realmente saber y aplicar para seguir estas técnicas correctamente.

Qué tengo que saber

Requisitos mínimos para sacar el máximo partido al curso, según todas las tecnologías y prácticas que se van a usar.

  • Programación orientada a objetos
  • Fundamentos básicos de testing: al menos, saber que son los test automatizados, su uso y sus bases. Es especialmente útil saber sobre test unitarios. No se parará demasiado tiempo en explicar: estructura de test unitarios (patrón AAA), nomenclatura de test unitarios, tipos de test, mocks, aserciones, Builders/ObjectMothers… Sin embargo sí que se pasará recurrentemente sobre ellos por pura relación con el TDD.
  • Refactoring: al menos saber qué es la refactorización y su diferencia con la reescritura de código. Se comentará brevemente al inicio del curso. No es un curso sobre refactoring y se usará refactoring guiado por el IDE sin pararse mucho en ello.

Clases y contenidos

TDD como diseño emergente: known to unknown
  • Contenidos:
    • Kent Beck rechaza tanto bottom-up como top-down para hablar de known-to-unknown. Su ejercicio del dinero, donde hay un conocimiento de dominio pero no una implementación satisfactoria, lo ejemplifica a la perfección. La manera en que la partición de las clases de equivalencia sale a la luz habla bien de ese «known-to-unknown» y el papel de guía del TDD.
  • Ejercicios:
    • Currency de KentBeck
    • Números romanos
TDD como gestión del miedo: design sketching
  • Contenidos:
    • Kent Beck explica la técnica como las poleas que ayudan a sacar agua de un pozo y cada test o cada ciclo red/green/refactoring como las ruedas dentadas de esas poleas.
    • En un ejercicio con cierto dominio, como los intervalos, se ve cómo se puede relajar o apretar el ciclo del TDD en función del momento.
  • Ejercicios:
    • Introducción a rangos numéricos
TDD como generador de API: YAGNI
  • Contenidos:
    • El TDD exige adelantar la excelencia en la calidad de una API, algo que ya aseguran "per se" los test unitarios, pero que el ciclo del TDD pule, tanto para evitar sobrediseño en esa calidad como para sacar a la luz ese diseño cuando empieza a hacerse necesario.
  • Ejercicios:
    • FizzBuzz!
TDD como corrector de API: fail-fast
  • Contenidos:
    • El TDD implica una exigencia sobre la API que no solo fomenta la calidad de la misma como se ha visto, sino que, muchas veces, saca a la luz errores difícilmente visibles tan rápido mediante otros procesos de desarrollo.
  • Ejercicios:
    • Grupos de experiencia de Pokémon
    • Learning test sobre API de números pseudoaleatorios
Hackathon TDD

En esta clase hacemos una dinámica de TDD con dominios no planificados y con la participación de otros estudiantes, con la idea de que todos desarrollemos la solución al mismo tiempo.

Valoraciones

Alejandro Lozano Jiménez

Francisco Matamoros

Excelente curso práctico. Ricardo es un gran amante de TDD y eso se palpa durante el curso. Sus conocimientos son extensos, mantiene un ritmo excelente sin dejar atrás ninguna duda que pueda surgir. Sus clases son muy interactivas, así que hace que realmente aprendas, no solo materia del curso sino que te nutras de su experiencia y su forma de transmitirla. Deseando verle como tutor por otro curso.

Leonardo Hakim

Andres Hoyos

Marcos Sánchez

De la teoria de Luis a la Practica de Ricardo .. .. seguimos ampliando conocimientos .. gracias a todos ...

José Lorenzo Escudero

A tope! :)

Alberto Morales

Totalmente recomendado, Ricardo es un gran desarrollador. Tiene un conocimiento avanzado sobre muchos temas, lo que se demuestra en la complejidad de este pequeño pero muy buen curso. Siempre transmite la fuente de su conocimiento poniendo como referencia grandes autores del mundo del software así como sus conclusiones al aterrizar esas prácticas a un proyecto real.

¿Conoces nuestra tarifa plana?

Toda la formación de EscuelaIT, con más de 170 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.

Suscríbete