Introducción a Test Driven Development

programacion

Test Driven Development (TDD) o Desarrollo guiado por pruebas es una práctica de desarrollo software que combina dos actividades principales:

  • Escribir las pruebas primero (Test First Approach)
  • Refactorizar el código

Aunque ambas técnicas son conocidas desde hace varias décadas, se popularizaron dentro de la disciplina de desarrollo software Extreme Programing en 1999

La correcta aplicación de estas prácticas y disciplinas provoca un código más robusto, mantenible, con pruebas automatizadas desde el inicio. Las arquitecturas del código que se derivan de la aplicación de TDD son diferentes y habitualmente mejores que las obtenidas de código creado desde un diseño previo.

Metodología

La metodología utilizada será de un enfoque a taller práctico en el que se codificará en parejas (pair programming) realizando retos de programación de dificultad progresiva

Los contenidos teóricos del temario se expondrán de forma sintética durante las prácticas.

OBJETIVOS

Aunque TDD no es aplicable a toda situación de desarrollo software, los que lo utilizan lo consideran el mecanismo de desarrollo más eficiente.

TDD obliga al programador a:

  • Usar buenos patrones de diseño
  • Escribir código limpio
  • Crear pruebas automatizadas
  • Crear soluciones software mantenibles

Es decir, la práctica de TDD desarrolla fuertemente la capacidad del programador, especialmente si se va a trabajar en un framework agile (XP, Scrum)


Dirigido a

Programadores y desarrolladores software. También es muy recomendable para testers que se estén introduciendo en la programación y vayan a trabajar con BDD o ATDD, así como criterios de aceptación en desarrollos ágiles

Conocer el lenguaje de programación y estar habituado al uso de IDE, herramientas de gestión de configuración.

Temario del curso

CONTENIDOS

  • Introducción a XP: Valores, Principios y Prácticas
  • Introducción a los tests unitarios
    • Estructura del framework
    • Buenas prácticas para el código de test
    • Principios FIRST
  • Prácticas relacionadas con:
    • Código limpio
    • Patrones de diseño
  • Descripción de TDD
  • Herramientas de test: Mocks, doubles, spies, stubs