SlideShare una empresa de Scribd logo
1 de 13
BABY STEPS TO TDD
Edson Chávez Montaño
edsonchavez@gmail.com
@Grubhart
Había
Una
Vez
https://www.flickr.com/photos/verbunkos/4984379596
PREGUNTA ABIERTA
¿Equivocarse es bueno o malo?
DEFINICIONES
• Probar comportamiento de componentes
• Evitar dependencia entre componentes
• Estado conocido
• No es trabajo de QA
BENEFICIOS
• Menor propensión a errores
• Rápidos
• Especificación ejecutable y viva del comportamiento
de un método
BENEFICIOS
• Permite encapsular un error y enfocar el esfuerzo
realizado
• Paso necesario a técnicas que han demostrado su
eficacia como TDD, Continuous Integration,
Continuous Delivery
INVERSIÓN
• Tiempo
• Metódico
• Disciplina
• Tener claro el concepto de prueba unitaria
• Capacidad de abstracción y encapsulamiento
• Decidir que probar y que no
RIESGOS
• Probar por lograr un indicador
• Probar sin saber que se prueba
• Dejar pruebas sin pasar
QUE HAY DESPUÉS
• Integration Tests
• Acceptance Tests
• Gui Tests
CICLO
• Escribir el Test (dado <escenario>, cuando
<comportamiento> entonces <asserts>) y verlo fallar
• Escribir la implementación mas simple para que el
test pase (cometiendo todos los pecados imaginables)
• Refactor: mejorar el diseño sin afectar el
comportamiento, detectar y corregir smells (código
de producción y código de pruebas).
RECURSOS
• Coding Dojo
(http://codingdojo.org/)
• Codewars
(https://www.codewars.com/)
FIBALL
son dos jugadores
el puntaje de cada jugador empieza en 0 puntos,
Cada vez que un jugador anota un punto su puntaje obtiene puntos equivalentes a la
siguiente variación de la serie fibonacci (hasta 21 puntos)
0,1,2,3,5,8,13,21
si luego de obtener 21 puntos un jugador hace un punto mas, gana el partido (excepto si
aplica la siguiente regla)
si dos jugadores empatan en 21 puntos entran a "suspenso"
Si un jugador hace un punto cuando el juego está en "suspenso" el jugador se pone en
"ventaja"
Si un jugador esta en ventaja y el otro jugador marca un punto el juego vuelve a
"suspenso" y el jugador pierde la condición de "ventaja"
si un jugador en ventaja hace un punto más gana la partida

Más contenido relacionado

Similar a Baby steps to tdd v3

Webinar QALovers: Lecciones aprendidas al incorporar las pruebas como parte d...
Webinar QALovers: Lecciones aprendidas al incorporar las pruebas como parte d...Webinar QALovers: Lecciones aprendidas al incorporar las pruebas como parte d...
Webinar QALovers: Lecciones aprendidas al incorporar las pruebas como parte d...Claudia Badell
 
Artalde Tdd intro
Artalde Tdd introArtalde Tdd intro
Artalde Tdd introfperezplain
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDDFran Grau
 
Alianza PRO - Certificación de Testing con Abstracta Academy charla sobre te...
Alianza PRO - Certificación de Testing con Abstracta Academy  charla sobre te...Alianza PRO - Certificación de Testing con Abstracta Academy  charla sobre te...
Alianza PRO - Certificación de Testing con Abstracta Academy charla sobre te...Federico Toledo
 

Similar a Baby steps to tdd v3 (6)

Webinar QALovers: Lecciones aprendidas al incorporar las pruebas como parte d...
Webinar QALovers: Lecciones aprendidas al incorporar las pruebas como parte d...Webinar QALovers: Lecciones aprendidas al incorporar las pruebas como parte d...
Webinar QALovers: Lecciones aprendidas al incorporar las pruebas como parte d...
 
Rodrigo Sanchez, mer
Rodrigo Sanchez, merRodrigo Sanchez, mer
Rodrigo Sanchez, mer
 
Artalde Tdd intro
Artalde Tdd introArtalde Tdd intro
Artalde Tdd intro
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 
Alianza PRO - Certificación de Testing con Abstracta Academy charla sobre te...
Alianza PRO - Certificación de Testing con Abstracta Academy  charla sobre te...Alianza PRO - Certificación de Testing con Abstracta Academy  charla sobre te...
Alianza PRO - Certificación de Testing con Abstracta Academy charla sobre te...
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 

Más de Edson Chávez Montaño (13)

Hablemos de oauth2 v3
Hablemos de oauth2 v3Hablemos de oauth2 v3
Hablemos de oauth2 v3
 
Hablemos de oauth2 v2
Hablemos de oauth2 v2Hablemos de oauth2 v2
Hablemos de oauth2 v2
 
Que hemos aprendido en 5 anos de devops version agile peru
Que hemos aprendido en 5 anos de devops   version agile peruQue hemos aprendido en 5 anos de devops   version agile peru
Que hemos aprendido en 5 anos de devops version agile peru
 
Hablemos de CI
Hablemos de CIHablemos de CI
Hablemos de CI
 
Polinizando organizaciones
Polinizando organizacionesPolinizando organizaciones
Polinizando organizaciones
 
Hablemos de oauth2
Hablemos de oauth2Hablemos de oauth2
Hablemos de oauth2
 
Introducción a Scrum
Introducción a ScrumIntroducción a Scrum
Introducción a Scrum
 
Builds complejos con Pipeline Plugin
Builds complejos con Pipeline PluginBuilds complejos con Pipeline Plugin
Builds complejos con Pipeline Plugin
 
Automatizacion de proyectos con gradle
Automatizacion de proyectos con gradleAutomatizacion de proyectos con gradle
Automatizacion de proyectos con gradle
 
Baby steps to tdd
Baby steps to tddBaby steps to tdd
Baby steps to tdd
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 
Clean Code - Coder
Clean Code - CoderClean Code - Coder
Clean Code - Coder
 
InSpring security
InSpring securityInSpring security
InSpring security
 

Baby steps to tdd v3

  • 1. BABY STEPS TO TDD Edson Chávez Montaño edsonchavez@gmail.com @Grubhart
  • 4. DEFINICIONES • Probar comportamiento de componentes • Evitar dependencia entre componentes • Estado conocido • No es trabajo de QA
  • 5. BENEFICIOS • Menor propensión a errores • Rápidos • Especificación ejecutable y viva del comportamiento de un método
  • 6. BENEFICIOS • Permite encapsular un error y enfocar el esfuerzo realizado • Paso necesario a técnicas que han demostrado su eficacia como TDD, Continuous Integration, Continuous Delivery
  • 7. INVERSIÓN • Tiempo • Metódico • Disciplina • Tener claro el concepto de prueba unitaria • Capacidad de abstracción y encapsulamiento • Decidir que probar y que no
  • 8. RIESGOS • Probar por lograr un indicador • Probar sin saber que se prueba • Dejar pruebas sin pasar
  • 9. QUE HAY DESPUÉS • Integration Tests • Acceptance Tests • Gui Tests
  • 10.
  • 11. CICLO • Escribir el Test (dado <escenario>, cuando <comportamiento> entonces <asserts>) y verlo fallar • Escribir la implementación mas simple para que el test pase (cometiendo todos los pecados imaginables) • Refactor: mejorar el diseño sin afectar el comportamiento, detectar y corregir smells (código de producción y código de pruebas).
  • 12. RECURSOS • Coding Dojo (http://codingdojo.org/) • Codewars (https://www.codewars.com/)
  • 13. FIBALL son dos jugadores el puntaje de cada jugador empieza en 0 puntos, Cada vez que un jugador anota un punto su puntaje obtiene puntos equivalentes a la siguiente variación de la serie fibonacci (hasta 21 puntos) 0,1,2,3,5,8,13,21 si luego de obtener 21 puntos un jugador hace un punto mas, gana el partido (excepto si aplica la siguiente regla) si dos jugadores empatan en 21 puntos entran a "suspenso" Si un jugador hace un punto cuando el juego está en "suspenso" el jugador se pone en "ventaja" Si un jugador esta en ventaja y el otro jugador marca un punto el juego vuelve a "suspenso" y el jugador pierde la condición de "ventaja" si un jugador en ventaja hace un punto más gana la partida