Las claves del
Desarrollo Dirigido por
Pruebas (o TDD)

javierj@us.es /
@IWT2_Javier
¿Quién soy yo?
Índice
¿Por qué TDD?
• Sin pruebas
• No veía fácilmente el diseño
• Fallaba por sorpresa sin saber por qué
• Cambiaba por cambiar.
• Apechugar con las malas decisiones.
• No avanzaba.
• Presionado por fecha límite.
• Me sentía mal.
• Un cuadro típico de necesito TDD.
¿Qué es TDD?
¿Qué es TDD?
¿Qué es TDD?
1. You are not allowed to write any
production code unless it is to
make a failing unit test pass.
2. You are not allowed to write any
more of a unit test than is sufficient
to fail; and compilation failures are
failures.
3. You are not allowed to write any
more production code than is
sufficient to pass the one failing
unit test.
TDD no es probar

Desarrollador TDD

Tester

Escribo una prueba con un observador

Vale

Escribo una prueba con dos observadores

Es lo mismo !!!!
Puntos clave de TDD
•
•
•
•
•
•

Pruebas sencillas
¿Por dónde empezamos?
Babysteps
De abajo a arriba.
Usa papel y lápiz.
Prepara tu código para el
cambio.
• Pruebas son código de
primera.
Pruebas Sencillas

Don't let yourself get
attached to anything you
are not willing to walk out
on in 30 seconds flat if you
feel the heat around the
corner.
Prueba son código de primera
Prueba son código de primera
Babysteps
Empieza por el ejemplo más sencillo
Empieza por el ejemplo más sencillo
Librería de fracciones
Prepárate para el cambio
Prepárate para el cambio
Usa siempre lápiz y papel
Buenas prácticas en TDD
Diario de diseño.
De abajo a arriba
De abajo a arriba

Do the double
TDD desde las trincheras
TDD en las trincheras

Every unit test you write is not production code
solving someone's problem.
Trincheras. Bases de Datos
Trincheras. Bases de Datos

Código de
negocio

Dobles de
prueba

Código de
acceso a la
BBDD

BBDD

Análisis de SQL

BBDD en
memoria
Trincheras. Desarrollo para Android
Trincheras. Videojuegos.

NO
Conclusiones

Pruébalo y elige
Conclusiones
TDD requiere disciplina

• Falsa sensación de
velocidad.
• Falsa sensación de
seguridad.
• No tener claro qué probar
• Set-up complejo.
• Módulos “Dios”
Extra

10.000 líneas de código C#...
Comprobado…. 124 assemblies .NET
generados…. Comprobado…. 52
scripts de construcción…
comprobado

Ahora que mis pruebas unitarias
están escritas puedo empezar a
construir mis componentes.
Extra

31
Agradecimientos

Onikami
Enlaces
• Blog: http://iwt2-javierj.tumblr.com/
• Libro:
http://www.iwt2.org/web/opencms/IWT2/comunid
ad/LibroTDD/?locale=es
• GameUS: http://www.gameus.es/
• IWT2 DojoUS:
http://www.iwt2.org/web/opencms/IWT2/comunid
ad/dojous/?locale=es
• Twitter: @IWT2_Javier/ @GameUsSev /
@TDDPractico

Fin
33

Las Claves del Desarrollo Dirigido por Pruebas (o TDD)