cómo aplicar tdd. almería 13/05/2014

33
Las claves del Desarrollo Dirigido por Pruebas (o TDD) [email protected] / @IWT2_Javier

Upload: javierj

Post on 19-Jun-2015

248 views

Category:

Software


1 download

DESCRIPTION

Transparencias de la charla Cómo Aplicar TDD impartica en la Universidad de Almería el 13/05/2014 en el marco de los actos de San Isidro

TRANSCRIPT

Page 1: Cómo aplicar TDD. Almería 13/05/2014

Las claves del Desarrollo Dirigido

por Pruebas (o TDD)

[email protected] / @IWT2_Javier

Page 2: Cómo aplicar TDD. Almería 13/05/2014

¿Quién soy yo? - Blogs

Blogs: Proyectos:

JGraphT

HootboardGame

Page 3: Cómo aplicar TDD. Almería 13/05/2014

¿Quién soy yo? - Proyectos

Congresos: Katas:

Page 4: Cómo aplicar TDD. Almería 13/05/2014

Índice

¿Por qué utilizar TDD?

¿Cómo aplicar TDD?

TDD’s Darkside

Page 5: Cómo aplicar TDD. Almería 13/05/2014

Índice

¿Por qué utilizar TDD?

¿Cómo aplicar TDD?

TDD Jam

Page 6: Cómo aplicar TDD. Almería 13/05/2014

• 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.

¿Por qué TDD?

Page 7: Cómo aplicar TDD. Almería 13/05/2014

Todo el software mienteCambia

Page 8: Cómo aplicar TDD. Almería 13/05/2014

• Todos nos equivocamos

“No fracasé, sólo descubrí 999 maneras de como no

hacer una bombilla.”

Todo el software mienteCambia

Page 9: Cómo aplicar TDD. Almería 13/05/2014

¿Por qué TDD?

NO

Page 10: Cómo aplicar TDD. Almería 13/05/2014

Probar los actores

Page 11: Cómo aplicar TDD. Almería 13/05/2014

¿Qué es TDD?

Page 12: Cómo aplicar TDD. Almería 13/05/2014

¿Qué es TDD?

Page 13: Cómo aplicar TDD. Almería 13/05/2014

¿Qué es TDD?

Page 14: Cómo aplicar TDD. Almería 13/05/2014

¿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.

Page 15: Cómo aplicar TDD. Almería 13/05/2014

TDD no es probar

Desarrollador TDD Tester

Escribo una prueba con un observador Vale

Escribo una prueba con dos observadores Es lo mismo !!!!

Page 16: Cómo aplicar TDD. Almería 13/05/2014

Índice

¿Por qué utilizar TDD?

¿Cómo aplicar TDD?

TDD Jam

Page 17: Cómo aplicar TDD. Almería 13/05/2014

2. El Proceso TDD

El proceso de TDD

Page 18: Cómo aplicar TDD. Almería 13/05/2014

2. El Proceso TDD

¿Por qué?

Page 19: Cómo aplicar TDD. Almería 13/05/2014

Sobre escribir pruebas

• Assert first• Pruebas

extremadamente sencillas

• Prueba una única cosa• Valores de entrada

concreto• DRY: Don’r Repeat

Yourself

Page 20: Cómo aplicar TDD. Almería 13/05/2014

Sobre refactorizar

• Elimina el código duplicado.

• Aumenta la expresividad de tu código.

• Sustituye especificaciones por detalles.

• Elimina malos olores.

Page 21: Cómo aplicar TDD. Almería 13/05/2014

Dirigir TDD

Page 22: Cómo aplicar TDD. Almería 13/05/2014

¿A dónde me lleva TDD?

• Técnica Presentator-first, comienza .• Domain-driven development / arquitectura

hexagonal / puertos y adaptadores• No empieces por la base de datos.• Objetos humildes que huyen de tu framework.• Refactorizar a patrones de diseño• GUIs anoréxicas.

Page 23: Cómo aplicar TDD. Almería 13/05/2014

TDD Roadmap

Continous integration

Page 24: Cómo aplicar TDD. Almería 13/05/2014

Herramientas

Page 25: Cómo aplicar TDD. Almería 13/05/2014

25

TDD the Dark-Side

Page 26: Cómo aplicar TDD. Almería 13/05/2014

TDD en las trincheras

Every unit test you write is not production code solving someone's problem.

Page 27: Cómo aplicar TDD. Almería 13/05/2014

TDD’s Darside

• ¿Y si no sabes lo que quieres?• Resultados parciales• Double-fest• Ir poco a poco.• Indirección.• Constelación de clases.• Desperdicio de pruebas• TDD es más lento.

Page 28: Cómo aplicar TDD. Almería 13/05/2014

TDD is hot…. now

Page 29: Cómo aplicar TDD. Almería 13/05/2014

Índice

¿Por qué utilizar TDD?

¿Cómo aplicar TDD?

TDD Jam

Para terminar

Page 30: Cómo aplicar TDD. Almería 13/05/2014

Conclusiones

Pruébalo y elige

Page 31: Cómo aplicar TDD. Almería 13/05/2014

Te necesitamos

Page 32: Cómo aplicar TDD. Almería 13/05/2014

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.

Page 33: Cómo aplicar TDD. Almería 13/05/2014

33

Enlaces

• Blog: http://iwt2-javierj.tumblr.com/• Libro:

http://www.iwt2.org/web/opencms/IWT2/comunidad/LibroTDD/?locale=es

• GameUS: http://www.gameus.es/• IWT2 DojoUS:

http://www.iwt2.org/web/opencms/IWT2/comunidad/dojous/?locale=es

• Twitter: @IWT2_Javier/ @GameUsSev / @TDDPractico Fin