Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

736 views

Published on

Introducción al Test-Driven Development (TDD) por Eric Mignot
Charla dictada en la Universidad de Los Andes, Mérida-Venezuela, Mayo 2012.
Ciclo en cascada de desarrollo de software. Testing. Valor entregado a los clientes y usuarios.
Agilidad, Scrum.
Colaboración, trabajo en equipo, especificaciones de software, tests, calidad del software.
Ciclo TDD: 1) Test, 2) Code y 3) Refactor.
Práctica, ejemplos.

Published in: Software

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

  1. 1. Test-driven development @EricMinio
  2. 2. Cuando empecé a trabajar... ...asi iban las cosas :
  3. 3. Cuando lo pienso hoy... ...escribíamos la aplicación varias veces :-(
  4. 4. Cuando lo pienso hoy... ...escribíamos la aplicación varias veces :-(
  5. 5. Cuando lo pienso hoy... ...escribíamos la aplicación varias veces :-(
  6. 6. Cuando lo pienso hoy... ...escribíamos la aplicación varias veces :-(
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. Además... ...nadie tenía la culpa
  11. 11. Además... ...nadie tenía la culpa
  12. 12. Además... ...nadie tenía la culpa
  13. 13. Además... ...nadie tenía la culpa
  14. 14. Es decir... ...era culpa del cliente !
  15. 15. STOP !!! No tenía sentido
  16. 16. 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
  17. 17. Por ejemplo algunos... ...leyeron este libro... ...y lo leyeron de nuevo ...y lo leyeron de nuevo ...
  18. 18. Otros... ...leyeron este libro... ...y lo leyeron de nuevo ...y lo leyeron de nuevo ...
  19. 19. Y mas recientemente... ...este libro... ...y lo leyeron de nuevo ...y lo leyeron de nuevo ...
  20. 20. Y hay aquellos... ...quienes tomaron todo esto MUY en serio.
  21. 21. Y hay aquellos... ...quienes tomaron todo esto MUY en serio.
  22. 22. Test-driven development @EricMinio
  23. 23. Una idea clave Hacer colaborar las diferentes partes interesadas
  24. 24. Si simplificamos un poco... ...encontramos 3 categorias de partes interesadas ● Aquellos que especifican ● Aquellos que escriben código ● Aquellos que testean
  25. 25. Desafortunadamente, la mayoria del tiempo ● No hablan el mismo idioma ● No trabajan juntos ● Incluso a veces ni siquiera se conocen
  26. 26. 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 ?
  27. 27. Buena noticia ! Hemos inventado todo lo que hace falta para eso :-)
  28. 28. 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
  29. 29. ...sino de especificaciones ejecutables ● Contienen ejemplos ● Estan ligadas al codigo ● Son un lugar de encuentro y de intercambio de ideas
  30. 30. 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
  31. 31. 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 ● ...
  32. 32. Van a oír hablar... ...del "ciclo" del TDD
  33. 33. 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
  34. 34. TDD & Calidad ¿Qué es un programa de calidad ? 5 minutos con su vecino
  35. 35. TDD & Calidad ¿Cuál es nuestro compromiso como profesional informático ? 5 minutos más :)
  36. 36. TDD & Calidad
  37. 37. "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 ?
  38. 38. ¿Qué opinan de esto ?
  39. 39. ¿Y si modifico el dibujo asi ? ¿Le recuerda algo ?
  40. 40. ¿"Test-Driven Scrum" ?
  41. 41. "Show me the code!"
  42. 42. "Show me the code!"
  43. 43. Merci Bons tests ! ;-)

×