Introducción al Test-Driven Development (TDD) por Eric Mignot
-
Upload
pablo-lischinsky -
Category
Software
-
view
334 -
download
0
Transcript of 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
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
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
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
Por ejemplo algunos...
...leyeron este libro...
...y lo leyeron de nuevo
...y lo leyeron de nuevo
...
Si simplificamos un poco...
...encontramos 3 categorias de partes interesadas● Aquellos que especifican● Aquellos que escriben código● Aquellos que testean
Desafortunadamente, la mayoria del tiempo
● No hablan el mismo idioma● No trabajan juntos● Incluso a veces ni siquiera se conocen
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 ?
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
...sino de especificaciones ejecutables
● Contienen ejemplos● Estan ligadas al codigo● Son un lugar de encuentro y de intercambio de ideas
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
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● ...
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
"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 ?