Test driven development

Realmente iterativo e incremental

Universidad Nacional de La Matanza

Es mucho más que escribir el test antes de programar

Involucra todo el ciclo de desarrollo

  • Análisis
  • Diseño
  • Programación
  • Testing

El cambio es parte intrínseca de construir software

  • Cambia el dominio del problema
  • Cambia el soporte de ejecución
  • Cambia nuestra forma de entender el problema

¿Qué es TDD?

Proceso de aprendizaje

  1. Es iterativo
  2. Es incremental
  3. El conocimiento se genera a partir de hechos
  4. El conocimiento debe ser organizado
  5. El feedback inmediato favorece el aprendizaje

¿Cómo hacer TDD?

Reglas

  1. Escribir el test más simple
  2. Escribir el código más sencillo para que los tests pasen
  3. Refactorizar

Estructura de un test

SetupEstablece el contexto inicial (pre-condición)
ExerciseEjercita funcionalidad específica
AssertVerifica resultados (post-condición)

Escribí un test y pasó en el primer intento

  1. Te adelantaste y escribíste código de más. Borrar y empezar de nuevo
  2. El test está repetido. No agrega un nuevo caso. Borrar

TDD es una práctica

Cómo toda práctica, al principio no nos sale bien. Hay que prácticar

Katas

Kata de factores primos

NúmeroFactores primos
1
22
33
42, 2
55
62, 3
77
82, 2, 2
93, 3
102, 5
1111

Conclusiones

TDD es una práctica para construir software de forma iterativa e incremental

Nos permite conocer el dominio del problema "de a poco"

Es simple, pero requiere práctica y disciplina

Debo buscar patrones en el código El código nos habla

Un test por caso funcional

Por hacer TDD no necesariamente tengamos un buen diseño

Nombrar tests al final Sintetizar setup, exercise y assertion en el nombre del test