SlideShare ist ein Scribd-Unternehmen logo
1 von 25
BDD-TDD-ATDD
Joan Sebastián Ramírez Pérez
2017
Agenda
• Pair programming
• BDD
• TDD
• ATDD
• Bibliografía
Agenda
• Pair programming
• BDD
• TDD
• ATDD
• Bibliografía
¿En qué consiste?
• Dos desarrolladores en un mismo sitio de trabajo,
donde uno codifica y el otro planea lo que sigue y vigila
el camino.
• El que codifica se llama controlador y el otro es
navegador.
• Los roles se van intercambiando en periodos de tiempo
regulares.
• El navegador no le puede quitar el teclado al
controlador, debe esperar su turno.
Ventajas
• Disciplina
• Calidad
• Enfoque
• Moral
• Propiedad colectiva o distribución de conocimiento
• Enseñanza
• Pocas interrupciones.
Desventajas
• Diferencias considerables entre los programadores
pueden hacer tedioso el trabajo.
• Trabajo en equipo cuando se tiene el habito de trabajo
individual.
• Medición de productividad.
• Diferencias en estilo de programación puede
desencadenar conflictos.
• Se dificulta con el teletrabajo.
Agenda
• Pair programming
• BDD
• TDD
• ATDD
• Integración continua
• Bibliografía
Notación Gerkins
• Usado para BDD y ATDD.
• Precondición-Acción-Resultado esperado= Given-
when-then.
• Se escriben los criterios de aceptación como
escenarios. Estos escenarios deberán ser
automatizado mediante pruebas.
Notación Gerkins
https://github.com/cucumber/cucumber/wiki/Given-When-Then
Ejemplo Combinación de números
BDD
• Behaviour Driven Development
• Termino asociado a metodologías ágiles.
• Usar ejemplos para crear un entendimiento compartido
para evitar incerteza y entregar software que realmente
importa.
BDD
• Se definen requisitos funcionales en términos de historias
de usuario.
• Para cada historia de usuario definimos escenarios que
expliquen, en lenguaje natural, el comportamiento que
queremos del software.
• Usamos Gherkins como sintaxis para la descripción de los
escenarios de la historia de usuario.
• Así guiamos nuestro desarrollo en el comportamiento
esperado por el cliente con todas sus variaciones de
implementación.
Ejemplo Combinación de números
Agenda
• Pair programming
• BDD
• TDD
• ATDD
• Integración continua
• Bibliografía
TDD
• Técnica de desarrollo de aplicaciones fundamentada en
escribir primero las pruebas, generalmente unitarias,
para luego escribir el código fuente del requisito que
dará por cumplida la prueba. Luego de esto se realiza
una revisión del código escrito para buscar mejoras a
dicho código (refactor).
• Nos ayuda a tener código más robusto, seguro,
mantenible y desarrollo más rápido.
• También ayuda a construir solo lo que realmente se
necesita y no perder el tiempo haciendo de más.
Agenda
• Pair programming
• BDD
• TDD
• ATDD
• Integración continua
• Bibliografía
ATDD
• Comienza con una discusión entre los stake holders y
desarrolladores. En ella se discuten las historias de
usuario buscando respuestas a los cuestionamientos
del negocio con el fin de definir claramente los criterios
de aceptación.
• Luego hacemos refinamiento de las historias de
usuario, si algo no quedo claro de la discusión. Se
llevan los criterios de aceptación a un formato
(Gherkins) que pueda ser procesado por alguno de los
frameworks de automatización de pruebas funcionales.
ATDD
• Se desarrolla la historia en TDD.
• Se procede a la comprobación por parte del usuario de
la historia de usuario terminada.
Agenda
• Pair programming
• BDD
• TDD
• ATDD
• Bibliografía
Bibliografía
• Laurie Williams & Robert Kessler. (2002). Pair
Programming Illuminated. (1st ed.). : Addison-Wesley
Professional.
• Dan North. (2006). Behavior Modification. Better Software
magazine, 2006-03(03).
• John Ferguson Smart. (2014). BDD in action. (1st ed.)

Weitere ähnliche Inhalte

Was ist angesagt?

Revisión de código fuente de manera ágil
Revisión de código fuente de manera ágilRevisión de código fuente de manera ágil
Revisión de código fuente de manera ágilJose Luis Bugarin Peche
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de SoftwareGustavo Bazan Maal
 
Entregables de las pruebas
Entregables de las pruebasEntregables de las pruebas
Entregables de las pruebasYoel Diomedez
 
14. fundamentos de desarrollo de software
14. fundamentos de desarrollo de software14. fundamentos de desarrollo de software
14. fundamentos de desarrollo de softwareJhon Barrera
 
#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 DevOpsHablemosDeTesting
 
Behavior1
Behavior1Behavior1
Behavior1arajar
 
Act 4.3 pruebas de software
Act 4.3 pruebas de softwareAct 4.3 pruebas de software
Act 4.3 pruebas de softwareRodrigo Santiago
 
Testing & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetsTesting & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetseusonlito
 
Is.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación ExtremaIs.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación Extremaperaltag
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasSergio Sanchez
 
Lp II clase01 - Desarrollo de software con RUP
Lp II   clase01 - Desarrollo de software con RUPLp II   clase01 - Desarrollo de software con RUP
Lp II clase01 - Desarrollo de software con RUPAngelDX
 

Was ist angesagt? (20)

Calidad de software y TDD
Calidad de software y TDDCalidad de software y TDD
Calidad de software y TDD
 
Integración Continua
Integración ContinuaIntegración Continua
Integración Continua
 
Revisión de código fuente de manera ágil
Revisión de código fuente de manera ágilRevisión de código fuente de manera ágil
Revisión de código fuente de manera ágil
 
Programación Extrema
Programación ExtremaProgramación Extrema
Programación Extrema
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de Software
 
Entregables de las pruebas
Entregables de las pruebasEntregables de las pruebas
Entregables de las pruebas
 
Métodos del proceso de software
Métodos del proceso de softwareMétodos del proceso de software
Métodos del proceso de software
 
14. fundamentos de desarrollo de software
14. fundamentos de desarrollo de software14. fundamentos de desarrollo de software
14. fundamentos de desarrollo de software
 
Sesión 03-métodos-ágiles-del-desarrollo-de-software
Sesión 03-métodos-ágiles-del-desarrollo-de-softwareSesión 03-métodos-ágiles-del-desarrollo-de-software
Sesión 03-métodos-ágiles-del-desarrollo-de-software
 
#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
 
Behavior1
Behavior1Behavior1
Behavior1
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
Act 4.3 pruebas de software
Act 4.3 pruebas de softwareAct 4.3 pruebas de software
Act 4.3 pruebas de software
 
Testing & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetsTesting & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnets
 
7iSF-4 test driver development
7iSF-4   test driver development7iSF-4   test driver development
7iSF-4 test driver development
 
Entregables de pruebas
Entregables de pruebasEntregables de pruebas
Entregables de pruebas
 
Is.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación ExtremaIs.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación Extrema
 
5. Métodos de Prueba de Software
5. Métodos de Prueba de Software5. Métodos de Prueba de Software
5. Métodos de Prueba de Software
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De Sistemas
 
Lp II clase01 - Desarrollo de software con RUP
Lp II   clase01 - Desarrollo de software con RUPLp II   clase01 - Desarrollo de software con RUP
Lp II clase01 - Desarrollo de software con RUP
 

Ähnlich wie Bddtddatdd

Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDDFran Grau
 
(Behavior driven development (bdd ) [sólo lectura])
(Behavior driven development  (bdd ) [sólo lectura])(Behavior driven development  (bdd ) [sólo lectura])
(Behavior driven development (bdd ) [sólo lectura])rakel_ita
 
Meetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderMeetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderEduardo Riol
 
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-automationAgile Spain
 
Desarrollo ágil de aplicaciones
Desarrollo ágil de aplicacionesDesarrollo ágil de aplicaciones
Desarrollo ágil de aplicacionesMario Solarte
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweekCarlos Ble
 
La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!Cristian Sánchez
 
Programación extrema xp
Programación extrema xpProgramación extrema xp
Programación extrema xpJose Luis Dorao
 
Práctica SRUM - (Introducción) v1.pptx
Práctica SRUM - (Introducción) v1.pptxPráctica SRUM - (Introducción) v1.pptx
Práctica SRUM - (Introducción) v1.pptxEverCGonzalesRodrigo1
 

Ähnlich wie Bddtddatdd (20)

BDD TDD ATDD
BDD TDD ATDDBDD TDD ATDD
BDD TDD ATDD
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 
(Behavior driven development (bdd ) [sólo lectura])
(Behavior driven development  (bdd ) [sólo lectura])(Behavior driven development  (bdd ) [sólo lectura])
(Behavior driven development (bdd ) [sólo lectura])
 
Meetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderMeetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poder
 
Day01
Day01Day01
Day01
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
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
 
Desarrollo ágil de aplicaciones
Desarrollo ágil de aplicacionesDesarrollo ágil de aplicaciones
Desarrollo ágil de aplicaciones
 
Desarrollo y diseño de software
Desarrollo y diseño de softwareDesarrollo y diseño de software
Desarrollo y diseño de software
 
Rad jorge vinueza
Rad jorge vinuezaRad jorge vinueza
Rad jorge vinueza
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweek
 
Metodologías de Desarrollo de Software
Metodologías de Desarrollo de SoftwareMetodologías de Desarrollo de Software
Metodologías de Desarrollo de Software
 
La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!
 
Scrum y craftsmanship
Scrum y craftsmanshipScrum y craftsmanship
Scrum y craftsmanship
 
Frontend Developer
Frontend DeveloperFrontend Developer
Frontend Developer
 
Programación Extrema (XP)
Programación Extrema (XP)Programación Extrema (XP)
Programación Extrema (XP)
 
Programación extrema xp
Programación extrema xpProgramación extrema xp
Programación extrema xp
 
Práctica SRUM - (Introducción) v1.pptx
Práctica SRUM - (Introducción) v1.pptxPráctica SRUM - (Introducción) v1.pptx
Práctica SRUM - (Introducción) v1.pptx
 
DevOps, automatización y... ¿cultura?
DevOps, automatización y... ¿cultura?DevOps, automatización y... ¿cultura?
DevOps, automatización y... ¿cultura?
 

Mehr von Joan Sebastián Ramírez Pérez (20)

Orm
OrmOrm
Orm
 
Servicios web
Servicios webServicios web
Servicios web
 
La nube. Cloud computting
La nube. Cloud computtingLa nube. Cloud computting
La nube. Cloud computting
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Ciclo devida
Ciclo devidaCiclo devida
Ciclo devida
 
Roles scrum
Roles scrumRoles scrum
Roles scrum
 
Lean startup
Lean startupLean startup
Lean startup
 
Principios SOLID
Principios SOLIDPrincipios SOLID
Principios SOLID
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Modelo diseño
Modelo diseñoModelo diseño
Modelo diseño
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
 
Diagramas comportamiento
Diagramas comportamientoDiagramas comportamiento
Diagramas comportamiento
 
Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
Calidad en el desarrollo del software
Calidad en el desarrollo del softwareCalidad en el desarrollo del software
Calidad en el desarrollo del software
 
Lean canvas
Lean canvasLean canvas
Lean canvas
 
MVC
MVCMVC
MVC
 
Uml
UmlUml
Uml
 

Kürzlich hochgeladen

Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Leonardo J. Caballero G.
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Leonardo J. Caballero G.
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++luzgaray6
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 

Kürzlich hochgeladen (6)

Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 

Bddtddatdd

  • 2. Agenda • Pair programming • BDD • TDD • ATDD • Bibliografía
  • 3. Agenda • Pair programming • BDD • TDD • ATDD • Bibliografía
  • 4. ¿En qué consiste? • Dos desarrolladores en un mismo sitio de trabajo, donde uno codifica y el otro planea lo que sigue y vigila el camino. • El que codifica se llama controlador y el otro es navegador. • Los roles se van intercambiando en periodos de tiempo regulares. • El navegador no le puede quitar el teclado al controlador, debe esperar su turno.
  • 5. Ventajas • Disciplina • Calidad • Enfoque • Moral • Propiedad colectiva o distribución de conocimiento • Enseñanza • Pocas interrupciones.
  • 6. Desventajas • Diferencias considerables entre los programadores pueden hacer tedioso el trabajo. • Trabajo en equipo cuando se tiene el habito de trabajo individual. • Medición de productividad. • Diferencias en estilo de programación puede desencadenar conflictos. • Se dificulta con el teletrabajo.
  • 7. Agenda • Pair programming • BDD • TDD • ATDD • Integración continua • Bibliografía
  • 8. Notación Gerkins • Usado para BDD y ATDD. • Precondición-Acción-Resultado esperado= Given- when-then. • Se escriben los criterios de aceptación como escenarios. Estos escenarios deberán ser automatizado mediante pruebas.
  • 11.
  • 12. BDD • Behaviour Driven Development • Termino asociado a metodologías ágiles. • Usar ejemplos para crear un entendimiento compartido para evitar incerteza y entregar software que realmente importa.
  • 13. BDD • Se definen requisitos funcionales en términos de historias de usuario. • Para cada historia de usuario definimos escenarios que expliquen, en lenguaje natural, el comportamiento que queremos del software. • Usamos Gherkins como sintaxis para la descripción de los escenarios de la historia de usuario. • Así guiamos nuestro desarrollo en el comportamiento esperado por el cliente con todas sus variaciones de implementación.
  • 14.
  • 15.
  • 17. Agenda • Pair programming • BDD • TDD • ATDD • Integración continua • Bibliografía
  • 18.
  • 19. TDD • Técnica de desarrollo de aplicaciones fundamentada en escribir primero las pruebas, generalmente unitarias, para luego escribir el código fuente del requisito que dará por cumplida la prueba. Luego de esto se realiza una revisión del código escrito para buscar mejoras a dicho código (refactor). • Nos ayuda a tener código más robusto, seguro, mantenible y desarrollo más rápido. • También ayuda a construir solo lo que realmente se necesita y no perder el tiempo haciendo de más.
  • 20. Agenda • Pair programming • BDD • TDD • ATDD • Integración continua • Bibliografía
  • 21.
  • 22. ATDD • Comienza con una discusión entre los stake holders y desarrolladores. En ella se discuten las historias de usuario buscando respuestas a los cuestionamientos del negocio con el fin de definir claramente los criterios de aceptación. • Luego hacemos refinamiento de las historias de usuario, si algo no quedo claro de la discusión. Se llevan los criterios de aceptación a un formato (Gherkins) que pueda ser procesado por alguno de los frameworks de automatización de pruebas funcionales.
  • 23. ATDD • Se desarrolla la historia en TDD. • Se procede a la comprobación por parte del usuario de la historia de usuario terminada.
  • 24. Agenda • Pair programming • BDD • TDD • ATDD • Bibliografía
  • 25. Bibliografía • Laurie Williams & Robert Kessler. (2002). Pair Programming Illuminated. (1st ed.). : Addison-Wesley Professional. • Dan North. (2006). Behavior Modification. Better Software magazine, 2006-03(03). • John Ferguson Smart. (2014). BDD in action. (1st ed.)