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

Post on 19-Jun-2015

252 views 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 of Cómo aplicar TDD. Almería 13/05/2014

Las claves del Desarrollo Dirigido

por Pruebas (o TDD)

javierj@us.es / @IWT2_Javier

¿Quién soy yo? - Blogs

Blogs: Proyectos:

JGraphT

HootboardGame

¿Quién soy yo? - Proyectos

Congresos: Katas:

Índice

¿Por qué utilizar TDD?

¿Cómo aplicar TDD?

TDD’s Darkside

Índice

¿Por qué utilizar TDD?

¿Cómo aplicar TDD?

TDD Jam

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

Todo el software mienteCambia

• Todos nos equivocamos

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

hacer una bombilla.”

Todo el software mienteCambia

¿Por qué TDD?

NO

Probar los actores

¿Qué es 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 !!!!

Índice

¿Por qué utilizar TDD?

¿Cómo aplicar TDD?

TDD Jam

2. El Proceso TDD

El proceso de TDD

2. El Proceso TDD

¿Por qué?

Sobre escribir pruebas

• Assert first• Pruebas

extremadamente sencillas

• Prueba una única cosa• Valores de entrada

concreto• DRY: Don’r Repeat

Yourself

Sobre refactorizar

• Elimina el código duplicado.

• Aumenta la expresividad de tu código.

• Sustituye especificaciones por detalles.

• Elimina malos olores.

Dirigir TDD

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

TDD Roadmap

Continous integration

Herramientas

25

TDD the Dark-Side

TDD en las trincheras

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

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.

TDD is hot…. now

Índice

¿Por qué utilizar TDD?

¿Cómo aplicar TDD?

TDD Jam

Para terminar

Conclusiones

Pruébalo y elige

Te necesitamos

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.

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