Top Banner
Test-driven development @EricMinio
43

Introducción al Test-Driven Development (TDD) por Eric Mignot

Jul 12, 2015

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introducción al Test-Driven Development (TDD) por Eric Mignot

Test-driven development

@EricMinio

Page 2: Introducción al Test-Driven Development (TDD) por Eric Mignot

Cuando empecé a trabajar...

...asi iban las cosas :

Page 3: Introducción al Test-Driven Development (TDD) por Eric Mignot

Cuando lo pienso hoy...

...escribíamos la aplicación varias veces :-(

Page 4: Introducción al Test-Driven Development (TDD) por Eric Mignot

Cuando lo pienso hoy...

...escribíamos la aplicación varias veces :-(

Page 5: Introducción al Test-Driven Development (TDD) por Eric Mignot

Cuando lo pienso hoy...

...escribíamos la aplicación varias veces :-(

Page 6: Introducción al Test-Driven Development (TDD) por Eric Mignot

Cuando lo pienso hoy...

...escribíamos la aplicación varias veces :-(

Page 7: Introducción al Test-Driven Development (TDD) por Eric Mignot

Receta a seguir...

...para tener Éxito (ascender en la compañía):● Seguir los procesos● Dominar las herramientas● Escribir documentos precisos● Negociar el contrato duramente con el cliente● Seguir el plan

Page 8: Introducción al Test-Driven Development (TDD) por Eric Mignot

No Funcionaba mal...

● Solíamos trabajar durante las noches pero solamente al final del proyecto

● Conseguíamos culpar al cliente de todo● Teníamos éxito financiero gracias al trabajo añadido

después del fin del proyecto

Page 9: Introducción al Test-Driven Development (TDD) por Eric Mignot

Ah Claro...

● estábamos cansados● estresados● cruzábamos los dedos a cada entrega● ...● pensábamos en serio hacer y vender empanadas (más

fácil, no?) en vez de todo esto

Page 10: Introducción al Test-Driven Development (TDD) por Eric Mignot

Además...

...nadie tenía la culpa

Page 11: Introducción al Test-Driven Development (TDD) por Eric Mignot

Además...

...nadie tenía la culpa

Page 12: Introducción al Test-Driven Development (TDD) por Eric Mignot

Además...

...nadie tenía la culpa

Page 13: Introducción al Test-Driven Development (TDD) por Eric Mignot

Además...

...nadie tenía la culpa

Page 14: Introducción al Test-Driven Development (TDD) por Eric Mignot

Es decir...

...era culpa del cliente !

Page 15: Introducción al Test-Driven Development (TDD) por Eric Mignot

STOP !!!

No tenía sentido

Page 16: Introducción al Test-Driven Development (TDD) por Eric Mignot

A menudo, hubo un golpe, una chispa...

● algunos leyeron un libro● otros se tomaron una cerveza con amigos● para otros fue la noche que rebasó el límite

Page 17: Introducción al Test-Driven Development (TDD) por Eric Mignot

Por ejemplo algunos...

...leyeron este libro...

...y lo leyeron de nuevo

...y lo leyeron de nuevo

...

Page 18: Introducción al Test-Driven Development (TDD) por Eric Mignot

Otros...

...leyeron este libro...

...y lo leyeron de nuevo

...y lo leyeron de nuevo

...

Page 19: Introducción al Test-Driven Development (TDD) por Eric Mignot

Y mas recientemente...

...este libro...

...y lo leyeron de nuevo

...y lo leyeron de nuevo

...

Page 20: Introducción al Test-Driven Development (TDD) por Eric Mignot

Y hay aquellos...

...quienes tomaron todo esto MUY en serio.

Page 21: Introducción al Test-Driven Development (TDD) por Eric Mignot

Y hay aquellos...

...quienes tomaron todo esto MUY en serio.

Page 22: Introducción al Test-Driven Development (TDD) por Eric Mignot

Test-driven development

@EricMinio

Page 23: Introducción al Test-Driven Development (TDD) por Eric Mignot

Una idea clave

Hacer colaborar las diferentes partes interesadas

Page 24: Introducción al Test-Driven Development (TDD) por Eric Mignot

Si simplificamos un poco...

...encontramos 3 categorias de partes interesadas● Aquellos que especifican● Aquellos que escriben código● Aquellos que testean

Page 25: Introducción al Test-Driven Development (TDD) por Eric Mignot

Desafortunadamente, la mayoria del tiempo

● No hablan el mismo idioma● No trabajan juntos● Incluso a veces ni siquiera se conocen

Page 26: Introducción al Test-Driven Development (TDD) por Eric Mignot

Manos a la obra !

Podemos ayudarlos● a trabajar juntos● a hacer ´til el trabajo de cada uno● a sentirse juntos en esa aventura● A tener placer ?

Page 27: Introducción al Test-Driven Development (TDD) por Eric Mignot

Buena noticia !

Hemos inventado todo lo que hace falta para eso :-)

Page 28: Introducción al Test-Driven Development (TDD) por Eric Mignot

Que tal no hablar de "tests"...

● Una especificación evoca un comportamiento● Un test ilustra un ejemplo de utilización● Un test puede ser un programa que ejecuta código

Page 29: Introducción al Test-Driven Development (TDD) por Eric Mignot

...sino de especificaciones ejecutables

● Contienen ejemplos● Estan ligadas al codigo● Son un lugar de encuentro y de intercambio de ideas

Page 30: Introducción al Test-Driven Development (TDD) por Eric Mignot

Entónces ? Test o Spec ?

Depende del punto de vista, para qué sirven, a quién

● ¿Se ejecutan para averiguar que todo funciona bien ? -> parecen tests

● ¿Se escriben para describir un comportamiento aún por venir ?

-> parecen especificaciones

Page 31: Introducción al Test-Driven Development (TDD) por Eric Mignot

Que es Test-Driven Development ?

Elija la definición que le ayude● Especificar comportamientos gracias a ejemplos● Ligar especificaciones y código● Escribir tests antes del código● Intercambiar ideas escribiendo código● Compartir ideas● Hacer que los tests sean las stars de la aventura● Ponerse de acuerdo acerca de nuestra intención● Capitalizar nuestras conversaciones en tests● Documentar como usar un código● Levantarse y pensar en las pruebas por escribir hoy● Acostarse y pensar a las pruebas que pasaron hoy● ...

Page 32: Introducción al Test-Driven Development (TDD) por Eric Mignot

Van a oír hablar...

...del "ciclo" del TDD

Page 33: Introducción al Test-Driven Development (TDD) por Eric Mignot

Una primera visión sencilla del ciclo

1 : Test● escribir un test y ver que falla

2 : Code● hacer pasar el test rápidamente

3 : Refactor● no se añade funcionalidad● se mejora la calidad interna

Page 34: Introducción al Test-Driven Development (TDD) por Eric Mignot

TDD & Calidad

¿Qué es un programa de calidad ?

5 minutos con su vecino

Page 35: Introducción al Test-Driven Development (TDD) por Eric Mignot

TDD & Calidad

¿Cuál es nuestro compromiso como profesional informático ?

5 minutos más :)

Page 36: Introducción al Test-Driven Development (TDD) por Eric Mignot

TDD & Calidad

Page 37: Introducción al Test-Driven Development (TDD) por Eric Mignot

"El modelo emerge durante el refactoring"Durante un curso TDD, los participantes suelen preguntarme

● ¿Tengo que escribir tests para las clases que emergen durante un refactoring ?

● Si lo hago, ¿no estoy quebrando el ciclo ?

Page 38: Introducción al Test-Driven Development (TDD) por Eric Mignot

¿Qué opinan de esto ?

Page 39: Introducción al Test-Driven Development (TDD) por Eric Mignot

¿Y si modifico el dibujo asi ?

¿Le recuerda algo ?

Page 40: Introducción al Test-Driven Development (TDD) por Eric Mignot

¿"Test-Driven Scrum" ?

Page 41: Introducción al Test-Driven Development (TDD) por Eric Mignot

"Show me the code!"

Page 42: Introducción al Test-Driven Development (TDD) por Eric Mignot

"Show me the code!"

Page 43: Introducción al Test-Driven Development (TDD) por Eric Mignot

Merci

Bons tests ! ;-)