Test Driven Development
Técnicas de Diseño
Facultad de Ingeniería
Universidad de Buenos Aires
Agenda






Qué es TDD?
Diseño Simple
Refactoring
El proceso de TDD
Ejemplo
Herramientas
Agenda






Qué es TDD?
Diseño Simple
Refactoring
El proceso de TDD
Ejemplo
Herramientas
Qué es TDD?

Proceso iterativo en el cual el desarrollo está guiado
por los test.

Los tests representan los requerimientos que
nuestro código busca satisfacer.

Primero escribimos los test que expresan los
requerimientos a cumplir luego desarrollamos para
cumplir con dichos requerimientos.
Qué es TDD?
Dos reglas importantes:

Nunca escribir una línea de código a menos que
tengamos un test fallando. Los tests representan
los requerimientos que el código debe satisfacer, si
no hay requerimiento es porque no hay nada que
implementar.

Eliminar duplicación de código.
Agenda






Qué es TDD?
Diseño Simple
Refactoring
El proceso de TDD
Ejemplo
Herramientas
Diseño Simple


Nuestro código debe satisfacer los
requerimientos (tests) ni menos ni más.
Si no escribimos el código necesario para
satisfacer los requerimientos no estamos
cumpliendo con lo solicitado, si escribimos
de más agregamos complejidad innecesaria
que luego hay que mantener.
Diseño Simple

Guías para lograr ni menos ni más:
–
–
–
–
–
El código es apropiado para quien está dirigido.
El código pasa todos los tests.
El código comunica todo lo necesario.
El código tiene la menor cantidad de clases.
El código tiene la menor cantidad de métodos.
Agenda






Qué es TDD?
Diseño Simple
Refactoring
El proceso de TDD
Ejemplo
Herramientas
Refactoring


Proceso que permite mejorar el código
existente sin cambiar su funcionalidad
externa.
Esencial para TDD porque es necesario
refinar el diseño del código escrito a medida
que agregamos tests.
Agenda






Qué es TDD?
Diseño Simple
Refactoring
El proceso de TDD
Ejemplo
Herramientas
El proceso de TDD





Armar una lista de tests. Esto permite describir los
requerimientos de forma no ambigua e indicar el
scope de los mismos.
Red
Green
Refactor
El proceso se debe realizar en pasos pequeños lo
que permite determinar rápidamente donde
cometimos un error en caso de hacerlo.
El proceso de TDD








Escribir el código asociado a un test.
Compilar el código asociado al test. (no compila
porque aún no se ha implementado)
Implementar sólo lo suficiente para que el código
escrito compile.
Correr el test y ver si falla.
Implementar sólo lo suficiente para que el test pase.
Correr el test y ver que efectivamente pasa.
Refactorizar para aclarar y eliminar duplicación.
Repetir con todos los tests de la lista.
Agenda






Qué es TDD?
Diseño Simple
Refactoring
El proceso de TDD
Ejemplo
Herramientas
Ejemplo
Agenda






Qué es TDD?
Diseño Simple
Refactoring
El proceso de TDD
Ejemplo
Herramientas
Herramientas





xUnit (JUnit, NUnit, DbUnit, HttpUnit, etc.)
Easy Mock
JMock
TestNG
Selenium
Preguntas ?
Gracias!
Descargar

Test Driven Development