SlideShare une entreprise Scribd logo
1  sur  11
BABY STEPS TO TDD
Edson Chávez Montaño
edsonchavez@gmail.com
@Grubhart
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
TDD
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
• 12 meses 12 katas
(http://12meses12katas.com/)
• Coding Dojo
(http://codingdojo.org/)
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 esta 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 mas gana la partida

Contenu connexe

Similaire à Baby steps to tdd

Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automationCas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Agile Spain
 

Similaire à Baby steps to tdd (20)

Unidad ii. tdd
Unidad ii. tddUnidad ii. tdd
Unidad ii. tdd
 
practica 10 de fundamento.pdf
practica 10 de fundamento.pdfpractica 10 de fundamento.pdf
practica 10 de fundamento.pdf
 
Metodología Mobile-D.pdf
Metodología Mobile-D.pdfMetodología Mobile-D.pdf
Metodología Mobile-D.pdf
 
Metodología Mobile-D.pdf
Metodología Mobile-D.pdfMetodología Mobile-D.pdf
Metodología Mobile-D.pdf
 
Encuentro Genexus 2005 Beta Testing
Encuentro Genexus 2005 Beta TestingEncuentro Genexus 2005 Beta Testing
Encuentro Genexus 2005 Beta Testing
 
Cypress en un mundo lleno de Selenium
Cypress en un mundo lleno de SeleniumCypress en un mundo lleno de Selenium
Cypress en un mundo lleno de Selenium
 
Continuous Testing en un ambiente DevOps
Continuous Testing en un ambiente DevOpsContinuous Testing en un ambiente DevOps
Continuous Testing en un ambiente DevOps
 
Pruebas
PruebasPruebas
Pruebas
 
Casos de prueba
Casos de prueba Casos de prueba
Casos de prueba
 
Artalde Tdd intro
Artalde Tdd introArtalde Tdd intro
Artalde Tdd intro
 
Seminario de Test Development Driven
Seminario de Test Development DrivenSeminario de Test Development Driven
Seminario de Test Development Driven
 
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
 
Meetup: Sesion #1 Unit Testing & Simian Army
Meetup: Sesion #1 Unit Testing & Simian ArmyMeetup: Sesion #1 Unit Testing & Simian Army
Meetup: Sesion #1 Unit Testing & Simian Army
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
Introduction to unit testing
Introduction to unit testingIntroduction to unit testing
Introduction to unit testing
 
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automationCas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
 
7iSF-4 test driver development
7iSF-4   test driver development7iSF-4   test driver development
7iSF-4 test driver development
 
TDD Code Retreat
TDD Code RetreatTDD Code Retreat
TDD Code Retreat
 
Vuelta_a_los_origines_Testing.pdf
Vuelta_a_los_origines_Testing.pdfVuelta_a_los_origines_Testing.pdf
Vuelta_a_los_origines_Testing.pdf
 
Metodologías Aágiles: TDD (Test Driven development)
Metodologías Aágiles: TDD (Test Driven development)Metodologías Aágiles: TDD (Test Driven development)
Metodologías Aágiles: TDD (Test Driven development)
 

Plus de Edson Chávez Montaño

Plus de Edson Chávez Montaño (13)

Hablemos de oauth2 v3
Hablemos de oauth2 v3Hablemos de oauth2 v3
Hablemos de oauth2 v3
 
Baby steps to tdd v3
Baby steps to tdd v3Baby steps to tdd v3
Baby steps to tdd 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
 
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

  • 1. BABY STEPS TO TDD Edson Chávez Montaño edsonchavez@gmail.com @Grubhart
  • 2. DEFINICIONES  Probar comportamiento de componentes  Evitar dependencia entre componentes  Estado conocido  No es trabajo de QA
  • 3. BENEFICIOS  Menor propensión a errores  Rápidos  Especificación ejecutable y viva del comportamiento de un método
  • 4. 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
  • 5. 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
  • 6. RIESGOS  Probar por lograr un indicador  Probar sin saber que se prueba  Dejar pruebas sin pasar
  • 7. QUE HAY DESPUÉS  Integration Tests  Acceptance Tests  Gui Tests
  • 8. TDD
  • 9. 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).
  • 10. RECURSOS • 12 meses 12 katas (http://12meses12katas.com/) • Coding Dojo (http://codingdojo.org/)
  • 11. 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 esta 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 mas gana la partida