SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Test-driven development 
@EricMinio
Cuando empecé a trabajar... 
...asi iban las cosas :
Cuando lo pienso hoy... 
...escribíamos la aplicación varias veces :-(
Cuando lo pienso hoy... 
...escribíamos la aplicación varias veces :-(
Cuando lo pienso hoy... 
...escribíamos la aplicación varias veces :-(
Cuando lo pienso hoy... 
...escribíamos la aplicación varias veces :-(
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
Además... 
...nadie tenía la culpa
Además... 
...nadie tenía la culpa
Además... 
...nadie tenía la culpa
Además... 
...nadie tenía la culpa
Es decir... 
...era culpa del cliente !
STOP !!! 
No tenía sentido
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 
...
Otros... 
...leyeron este libro... 
...y lo leyeron de nuevo 
...y lo leyeron de nuevo 
...
Y mas recientemente... 
...este libro... 
...y lo leyeron de nuevo 
...y lo leyeron de nuevo 
...
Y hay aquellos... 
...quienes tomaron todo esto MUY en serio.
Y hay aquellos... 
...quienes tomaron todo esto MUY en serio.
Test-driven development 
@EricMinio
Una idea clave 
Hacer colaborar las diferentes partes interesadas
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 ?
Buena noticia ! 
Hemos inventado todo lo que hace falta para eso :-)
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 
● ...
Van a oír hablar... 
...del "ciclo" del TDD
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
TDD & Calidad 
¿Qué es un programa de calidad ? 
5 minutos con su vecino
TDD & Calidad 
¿Cuál es nuestro compromiso como profesional informático ? 
5 minutos más :)
TDD & Calidad
"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 ?
¿Qué opinan de esto ?
¿Y si modifico el dibujo asi ? 
¿Le recuerda algo ?
¿"Test-Driven Scrum" ?
"Show me the code!"
"Show me the code!"
Merci 
Bons tests ! ;-)

Más contenido relacionado

Destacado

Destacado (20)

TDD
TDDTDD
TDD
 
Joseluisseijoreig samuelsánchezmuñoz
Joseluisseijoreig samuelsánchezmuñozJoseluisseijoreig samuelsánchezmuñoz
Joseluisseijoreig samuelsánchezmuñoz
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven Development
 
Introducción a tdd
Introducción a tddIntroducción a tdd
Introducción a tdd
 
Bon news
Bon newsBon news
Bon news
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 
XP - Pair Programming y TDD - en la práctica
XP - Pair Programming y TDD - en la prácticaXP - Pair Programming y TDD - en la práctica
XP - Pair Programming y TDD - en la práctica
 
Breve introducción a TDD con Phpunit
Breve introducción a TDD con PhpunitBreve introducción a TDD con Phpunit
Breve introducción a TDD con Phpunit
 
Calidad de software y TDD
Calidad de software y TDDCalidad de software y TDD
Calidad de software y TDD
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
TDD Course (Spanish)
TDD Course (Spanish)TDD Course (Spanish)
TDD Course (Spanish)
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
 
BDD TDD ATDD
BDD TDD ATDDBDD TDD ATDD
BDD TDD ATDD
 
Automatizacion De Pruebas De Software
Automatizacion De Pruebas De SoftwareAutomatizacion De Pruebas De Software
Automatizacion De Pruebas De Software
 
Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 
Pruebas de unidad
Pruebas de unidadPruebas de unidad
Pruebas de unidad
 

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

equipos-de-ingenieria_4888526a-dde9-4227-b8fa-7e155078f305.pdf
equipos-de-ingenieria_4888526a-dde9-4227-b8fa-7e155078f305.pdfequipos-de-ingenieria_4888526a-dde9-4227-b8fa-7e155078f305.pdf
equipos-de-ingenieria_4888526a-dde9-4227-b8fa-7e155078f305.pdffrank calisaya lopez
 
GWJ2019 Capital - Patrones de fracaso
GWJ2019 Capital - Patrones de fracasoGWJ2019 Capital - Patrones de fracaso
GWJ2019 Capital - Patrones de fracasoGuillermo Averbuj
 
Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilagilenavarra
 
Extreme programming (1)
Extreme programming (1)Extreme programming (1)
Extreme programming (1)Enrique Polo
 
Sprint kickoff slides (español)
Sprint kickoff slides (español)Sprint kickoff slides (español)
Sprint kickoff slides (español)Felipe Garzón C
 
Introduccion a TDD y XP en la Universidad de Santiago de Compostela
Introduccion a TDD y XP en la Universidad de Santiago de CompostelaIntroduccion a TDD y XP en la Universidad de Santiago de Compostela
Introduccion a TDD y XP en la Universidad de Santiago de CompostelaCarlos Ble
 
Introduccion al desarrollo guiado por comportamiento
Introduccion al desarrollo guiado por comportamientoIntroduccion al desarrollo guiado por comportamiento
Introduccion al desarrollo guiado por comportamientoAlejandro Hernández
 
439177048-DESIGN-SPRINT-espanol-pdf.pdf
439177048-DESIGN-SPRINT-espanol-pdf.pdf439177048-DESIGN-SPRINT-espanol-pdf.pdf
439177048-DESIGN-SPRINT-espanol-pdf.pdfRonaldkeith2
 
Evaluación final tecnologia
Evaluación final tecnologiaEvaluación final tecnologia
Evaluación final tecnologiainesbueso
 
Design Sprint - Cómo Diseñar, Prototipar y Testear ideas en 5 días
Design Sprint - Cómo Diseñar, Prototipar y Testear ideas en 5 díasDesign Sprint - Cómo Diseñar, Prototipar y Testear ideas en 5 días
Design Sprint - Cómo Diseñar, Prototipar y Testear ideas en 5 díasMartin Beas Nuñez
 
Extremeprograming
ExtremeprogramingExtremeprograming
Extremeprogramingestudiante
 

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

equipos-de-ingenieria_4888526a-dde9-4227-b8fa-7e155078f305.pdf
equipos-de-ingenieria_4888526a-dde9-4227-b8fa-7e155078f305.pdfequipos-de-ingenieria_4888526a-dde9-4227-b8fa-7e155078f305.pdf
equipos-de-ingenieria_4888526a-dde9-4227-b8fa-7e155078f305.pdf
 
GWJ2019 Capital - Patrones de fracaso
GWJ2019 Capital - Patrones de fracasoGWJ2019 Capital - Patrones de fracaso
GWJ2019 Capital - Patrones de fracaso
 
Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvil
 
Extreme programming (1)
Extreme programming (1)Extreme programming (1)
Extreme programming (1)
 
Informe en quipo
Informe en quipoInforme en quipo
Informe en quipo
 
Frontend Developer
Frontend DeveloperFrontend Developer
Frontend Developer
 
Growing alivethings
Growing alivethingsGrowing alivethings
Growing alivethings
 
Sprint kickoff slides (español)
Sprint kickoff slides (español)Sprint kickoff slides (español)
Sprint kickoff slides (español)
 
Desarrollo ágil enfocado en ux 1 0 1
Desarrollo ágil enfocado en ux 1 0 1Desarrollo ágil enfocado en ux 1 0 1
Desarrollo ágil enfocado en ux 1 0 1
 
Kata tdd
Kata tddKata tdd
Kata tdd
 
Kata tdd
Kata tddKata tdd
Kata tdd
 
Introduccion a TDD y XP en la Universidad de Santiago de Compostela
Introduccion a TDD y XP en la Universidad de Santiago de CompostelaIntroduccion a TDD y XP en la Universidad de Santiago de Compostela
Introduccion a TDD y XP en la Universidad de Santiago de Compostela
 
Introduccion al desarrollo guiado por comportamiento
Introduccion al desarrollo guiado por comportamientoIntroduccion al desarrollo guiado por comportamiento
Introduccion al desarrollo guiado por comportamiento
 
Pensamiento agil, un estilo de vida!
Pensamiento agil, un estilo de vida!Pensamiento agil, un estilo de vida!
Pensamiento agil, un estilo de vida!
 
439177048-DESIGN-SPRINT-espanol-pdf.pdf
439177048-DESIGN-SPRINT-espanol-pdf.pdf439177048-DESIGN-SPRINT-espanol-pdf.pdf
439177048-DESIGN-SPRINT-espanol-pdf.pdf
 
Sharing the ux love
Sharing the ux loveSharing the ux love
Sharing the ux love
 
Evaluación final tecnologia
Evaluación final tecnologiaEvaluación final tecnologia
Evaluación final tecnologia
 
Design Sprint - Cómo Diseñar, Prototipar y Testear ideas en 5 días
Design Sprint - Cómo Diseñar, Prototipar y Testear ideas en 5 díasDesign Sprint - Cómo Diseñar, Prototipar y Testear ideas en 5 días
Design Sprint - Cómo Diseñar, Prototipar y Testear ideas en 5 días
 
Trabajo en equipo
Trabajo en equipoTrabajo en equipo
Trabajo en equipo
 
Extremeprograming
ExtremeprogramingExtremeprograming
Extremeprograming
 

Más de Pablo Lischinsky

Webinar de Product Discovery @ Kleer con Ricardo Colusso
Webinar de Product Discovery @ Kleer con Ricardo ColussoWebinar de Product Discovery @ Kleer con Ricardo Colusso
Webinar de Product Discovery @ Kleer con Ricardo ColussoPablo Lischinsky
 
El Product Owner estratégico - Agile Open Camp (AOC) Chile 2017
El Product Owner estratégico - Agile Open Camp (AOC) Chile 2017El Product Owner estratégico - Agile Open Camp (AOC) Chile 2017
El Product Owner estratégico - Agile Open Camp (AOC) Chile 2017Pablo Lischinsky
 
La paradoja de la eficiencia
La paradoja de la eficienciaLa paradoja de la eficiencia
La paradoja de la eficienciaPablo Lischinsky
 
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...Pablo Lischinsky
 
Introducción al desarrollo ágil de software en PHP DAY 2015
Introducción al desarrollo ágil de software en PHP DAY 2015Introducción al desarrollo ágil de software en PHP DAY 2015
Introducción al desarrollo ágil de software en PHP DAY 2015Pablo Lischinsky
 
Webinar AgilVen: Gestión ágil de requisitos en proyectos de software
Webinar AgilVen: Gestión ágil de requisitos en proyectos de softwareWebinar AgilVen: Gestión ágil de requisitos en proyectos de software
Webinar AgilVen: Gestión ágil de requisitos en proyectos de softwarePablo Lischinsky
 
Emprendiendo ágilmente con Lean Startup
Emprendiendo ágilmente con Lean StartupEmprendiendo ágilmente con Lean Startup
Emprendiendo ágilmente con Lean StartupPablo Lischinsky
 
Emprendiendo con Lean Startup
Emprendiendo con Lean StartupEmprendiendo con Lean Startup
Emprendiendo con Lean StartupPablo Lischinsky
 
Desarrollo ágil de software, Scrum
Desarrollo ágil de software, ScrumDesarrollo ágil de software, Scrum
Desarrollo ágil de software, ScrumPablo Lischinsky
 
Lean Startup: ¿qué es y por qué interesa a los agilistas?
Lean Startup: ¿qué es y por qué interesa a los agilistas?Lean Startup: ¿qué es y por qué interesa a los agilistas?
Lean Startup: ¿qué es y por qué interesa a los agilistas?Pablo Lischinsky
 
Desarrollo de nuevos emprendimientos usando el método Lean Startup
Desarrollo de nuevos emprendimientos usando el método Lean Startup Desarrollo de nuevos emprendimientos usando el método Lean Startup
Desarrollo de nuevos emprendimientos usando el método Lean Startup Pablo Lischinsky
 
Mapa mental de "software smells"
Mapa mental de "software smells"Mapa mental de "software smells"
Mapa mental de "software smells"Pablo Lischinsky
 

Más de Pablo Lischinsky (12)

Webinar de Product Discovery @ Kleer con Ricardo Colusso
Webinar de Product Discovery @ Kleer con Ricardo ColussoWebinar de Product Discovery @ Kleer con Ricardo Colusso
Webinar de Product Discovery @ Kleer con Ricardo Colusso
 
El Product Owner estratégico - Agile Open Camp (AOC) Chile 2017
El Product Owner estratégico - Agile Open Camp (AOC) Chile 2017El Product Owner estratégico - Agile Open Camp (AOC) Chile 2017
El Product Owner estratégico - Agile Open Camp (AOC) Chile 2017
 
La paradoja de la eficiencia
La paradoja de la eficienciaLa paradoja de la eficiencia
La paradoja de la eficiencia
 
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...
 
Introducción al desarrollo ágil de software en PHP DAY 2015
Introducción al desarrollo ágil de software en PHP DAY 2015Introducción al desarrollo ágil de software en PHP DAY 2015
Introducción al desarrollo ágil de software en PHP DAY 2015
 
Webinar AgilVen: Gestión ágil de requisitos en proyectos de software
Webinar AgilVen: Gestión ágil de requisitos en proyectos de softwareWebinar AgilVen: Gestión ágil de requisitos en proyectos de software
Webinar AgilVen: Gestión ágil de requisitos en proyectos de software
 
Emprendiendo ágilmente con Lean Startup
Emprendiendo ágilmente con Lean StartupEmprendiendo ágilmente con Lean Startup
Emprendiendo ágilmente con Lean Startup
 
Emprendiendo con Lean Startup
Emprendiendo con Lean StartupEmprendiendo con Lean Startup
Emprendiendo con Lean Startup
 
Desarrollo ágil de software, Scrum
Desarrollo ágil de software, ScrumDesarrollo ágil de software, Scrum
Desarrollo ágil de software, Scrum
 
Lean Startup: ¿qué es y por qué interesa a los agilistas?
Lean Startup: ¿qué es y por qué interesa a los agilistas?Lean Startup: ¿qué es y por qué interesa a los agilistas?
Lean Startup: ¿qué es y por qué interesa a los agilistas?
 
Desarrollo de nuevos emprendimientos usando el método Lean Startup
Desarrollo de nuevos emprendimientos usando el método Lean Startup Desarrollo de nuevos emprendimientos usando el método Lean Startup
Desarrollo de nuevos emprendimientos usando el método Lean Startup
 
Mapa mental de "software smells"
Mapa mental de "software smells"Mapa mental de "software smells"
Mapa mental de "software smells"
 

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

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