Curso TDD – nivel intermedio

Si ya tienes una base de conocimientos sobre el desarrollo guiado por pruebas, TDD, este curso te servirá para afianzar conceptos y sobre todo ponerlos en práctica. 

En este curso aprenderás a:


Aplicar la metodología de TDD para escribir software.

Escribir buenos tests y código fácil de testear.

Aplicar TDD al frontend: buenas prácticas de testear en el frontend.

 

Este es el segundo nivel, indicado para personas que ya tienen ciertos conocimientos sobre TDD. Para profesionales que necesiten empezar de cero tenemos el curso de introducción. 

 

PROGRAMA PARA EMPRESAS
¿Crees que este curso puede interesar a más miembros de tu equipo? Completa el formulario y solicita una propuesta con descuentos especiales. 

Instructores: Benjamin Rae
  • Inglés
  • Inglés, Español
  • 35–40 h de curso (aprox)
  • Recursos descargables
  • Acceso durante 1 año
  • Certificación incluida
  • Soporte profresores
  • Comunidad TDD

Nivel Intermedio: qué vas a aprender

  • Principios SOLID y testabilidad: Conocer los principios y entender su impacto.
  • Cómo escribir código fácil de testear: Entender cómo TDD impacta en el diseño y manejo del acoplamiento y cohesión
  • Cómo testear código legado: Implementar estrategias como el Golden Master y tests de caracterización para validar el comportamiento del legacy code. Encontrar y crear nexos de unión en el código.
  • Cómo escribir buenos tests: Aplicar metodologías como FIRST y Test Desiderata para escribir mejores tests. 
  • TDD en el frontend: Introducción a herramientas de testing en el frontend y como hacer TDD desde un interfaz de usuario.
  • TDD y el trabajo en equipo: Técnicas de trabajo en equipo con las que aplicar TDD, como pair y mob programming. Como usar tu sistema de control de versiones cuando haces TDD.

Contenido del curso

Módulo 1: Principios SOLID 3h
Abordaremos los principios SOLID y cómo se relacionan el testing. Veremos cada principio individualmente y cómo puede ayudarnos con los test y con el desarrollo de código de calidad.
Módulo 2: Cómo escribir código que sea fácil de probar 3h
Qué razones puede haber para no escribir test. Comprobarás, con ejemplos concretos, cómo pequeños cambios en el código pueden hacerlo mucho más fácil de testear.
Módulo 3: Acoplamiento y cohesión 4h
En este módulo discutiremos cómo el acoplamiento y cohesión puede ayudarnos a identificar dependencias explícitas en nuestro código y seguir escribiendo mejores test y un código de más calidad.
Módulo 4: F.I.R.S.T 4h
En este módulo exploramos los principios F.I.R.S.T para ayudarnos a escribir mejores suites de pruebas y también mejor código de producción, incluyendo técnicas como la ejecución de test en paralelo.
Módulo 5: Test Desiderata 4h
En este módulo repasaremos las enseñanzas de Kent Beck sobre su “Test Desiderata”, que de manera similar a F.I.R.S.T nos impulsa a escribir mejores test y un código de más calidad.
Módulo 6: Sociable vs Solitary testing 4h
Llegados a este punto ya hemos visto mucho contenido sobre las ventajas del solitary testing, así que ahora vamos a aprender sobre sociable testing y compararemos ambas aproximaciones para que elijas la que mejor se adapte a tu forma de escribir pruebas.
Módulo 7: Testing en código legacy 4h
Seguro que hay muchas ocasiones donde tienes que trabajar en proyectos con código legacy que no tienen testing. Vas a aprender técnicas como Golden Master, Characterization tests, o como aplicar “seams” y de ese modo testear código legacy.
Módulo 8: TDD en frontend 4h
Hasta ahora, hemos utilizado principalmente Java con Programación Orientada a Objetos. En este módulo vamos a cambiar de paradigma y explorar cómo podemos aplicar TDD al frontend y aprender el valor del users first cuando escribimos tests.
Módulo 9: TDD y trabajo en equipo 3h
Probablemente formas parte de un equipo de desarrollo, por eso necesitas aprender técnicas como pair programming y mob programming, y cómo pueden utilizarse con TDD para desarrollar software en equipo.

Este curso te da acceso a: 

  • Recursos teóricos y prácticos para aprender los conceptos básicos.
  • Cuestionarios para validar la evolución de tu aprendizaje.
  • Ejemplos detallados de cada una de las técnicas explicadas.
  • Katas con las que practicarás lo que aprendes.
  • Soporte de profesores: Cada nivel dispone de un canal de comunicación directo con los profesores del curso para resolver dudas y compartir avances. Todos nuestros profesores son practicantes diarios de estas metodologías.
  • Comunidad TDD: Además hay a tu disposición un canal de comunidad donde podrás compartir con otros miembros del curso tus avances, dudas, materiales de soporte y cómo está siendo tu experiencia. 

 

Al finalizar el curso se espera que seas capaz de:

  • Aplicar principios SOLID y F.I.R.S.T
  • Distinguir y manejarte con soltura con los distintos tipos de test que existen 
  • Trabajar en equipo aplicando TDD
  • Escribir test eficientes en código legacy
  • Manejarte haciendo TDD en el frontend

A quién está dirigido

Se trata de un curso puramente técnico, por lo que, se da por hecho que sabes programar en algún lenguaje.

Una buena base de Programación Orientada a Objetos te permitirá sacar el máximo provecho a este curso. Te recomendamos que uses un IDE (Entorno de Desarrollo Integrado) y que te familiarices con los atajos de teclado, ya que esto te ayudará a ganar mucha velocidad y facilidad en el desarrollo.

 

Es ideal para ti si: Ya tienes cierta experiencia  en el uso de tests automáticos y conocimiento básico de TDD. Necesario tener la base de los contenidos que se abordan en  el módulo de introducción. 


Requerimientos

  • Manejarte con soltura en al menos un lenguaje de programación.
  • Estar familiarizado con la sintaxis de ese lenguaje, los tipos de datos, el flujo de control y otras características específicas del lenguaje.
  • Tener una buena base de Programación Orientada a Objetos.
  • Te recomendamos que uses un IDE (Entorno de Desarrollo Integrado) y que te familiarices con los atajos de teclado.
  • Una cuenta de GitHub o GitLab.

¿Cuales son las ventajas de usar TDD? 

Aplicando TDD, con el nivel que va a aportarte el curso, vas a contribuir a crear un código más fiable y flexible, promoviendo soluciones escalables y de alta calidad mediante la automatización. 

Calidad de código mejorada: Garantiza la calidad del código, reduce errores y facilita añadir nuevas funciones al código: puedes verificar que tu código funciona como se espera. 

Pruebas de regresión: Garantizan que la funcionalidad permanezca intacta después de hacerle modificaciones. TDD permite que este proceso sea más manejable, al ejecutar el testing de forma rápida y sencilla.

Mantenimiento y escalabilidad: TDD reduce los riesgos asociados al mantenimiento y la escalabilidad del software, ya que un código bien diseñado y probado es más fácil de mantener y escalar.

Mayor satisfacción del cliente: Ser capaces de desarrollar un producto de mejor calidad aumenta la satisfacción y fidelidad de los clientes. 

Reducción de costes a largo plazo: TDD favorece la disminución de costes a largo plazo al reducir el tiempo y los recursos necesarios para depurar errores.

Aceleración del Time to Market: Facilita la integración y entrega continua (CI/CD), acelerando el lanzamiento de nuevos productos y funciones. Conseguirás feedback rápido sobre el estado del código y te ayudará a identificar problemas en fases iniciales. 

Colaboración y productividad del equipo: Permite a los miembros del equipo comprender la funcionalidad y los casos de uso, facilitan la comunicación y reducen los malentendidos, lo que conduce a una colaboración más fluida y mejoran la productividad. Mejora el nivel técnico del equipo y contribuye a la retención del talento.

Facilita la incorporación de nuevos profesionales: Cuando escribes tests actúan como documentación viva, reduciendo la barrera de entrada para nuevos profesionales en un equipo. 


Más info sobre ¿Cómo aplicar TDD en tus proyectos de desarrollo de software?

Ya hemos impartido este curso en estos clientes

cazoo-logo roche-logo santander-logo

Contacta con nosotros 

Si eres una empresa y necesitas un paquete de licencias estaremos encantados de preparar una propuesta a tu medida