SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
ATDD
Desarrollo Dirigido por Tests de Aceptación
Paulo Clavijo Esteban - Marzo 2013
Agenda
● Specification by Example
● ATDD
● Cucumber
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Specification by Example
"Desarrollar sin pruebas unitarias
automatizadas y sin pruebas de aceptación
es simplemente, construir código legado
desde el momento cero!"
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Specification by Example
● Los test unitarios aseguran que la aplicación
se ha construido correctamente.
● Los test de aceptación aseguran que se ha
desarrollado la funcionalidad esperada.
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Specification by Example
Los requerimientos son tests
Los tests son requerimientos
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Specification by Example
● Diferentes modelos:
● BDD - Behavior Driven Development
(Desarrollo Guiado por el Comportamiento)
● ATDD - Acceptance Test Driven Development
(Desarrollo Guiado por pruebas de aceptación)
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
ATDD
"Acceptance Test Driven Development (ATDD) is a practice in which the
whole team collaboratively discusses acceptance criteria, with examples,
and then distills them into a set of concrete acceptance tests before
development begins. It’s the best way I know to ensure that we all have
the same shared understanding of what it is we’re actually building. It’s
also the best way I know to ensure we have a shared definition of Done.
Obviously I think this is an important Agile development practice. In fact,
it’s one of the core pieces of my Agile Testing class. Yet somehow I have
neglected to write about it much on this blog. Time to rectify that."
Elisabeth Hendrickson.
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
ATDD
● TDD y ATDD no son técnicas de test son
herramientas de diseño para escribir código
limpio, código que hace lo esperado por el
cliente, etc.
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
ATDD
Las pruebas de aceptación son escritas ANTES de la funcionalidad. Siguiendo
los siguientes pasos:
● Tome una historia de usuario
● Escriba las pruebas de aceptación en el lenguaje de dominio del cliente
● Automatice las pruebas de aceptación
● Implemente la funcionalidad.
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Beneficios de ATDD
● Ejemplos reales y un lenguaje común para entender el
dominio.
● Permite identificar correctamente las reglas de negocio.
● Los flujos de trabajo funcionan desde el primer momento.
● Criterio visible para dar por finalizadas las historias de
usuario.
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Beneficios de ATDD
● No implementamos nada hasta tener definidos los tests.
Se reduce el tiempo perdido reprogramando.
● Living Documentation: Documentación y test de
aceptación siempre actualizados.
● Validación automática.
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Quién
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Especificaciones ejecutables
● JUnit, Selenium, etc.
(Lenguaje entendido solo por desarrolladores)
● Aceptance Test Framework
○ Cucumber
○ Concordion
○ Fitnesee
○ Robot Framework
Cucumber - Features
● Feature (Historia de Usuario)
○ Como
○ Quiero
○ Para
● Escenario 1
○ step
○ step
● Escenario 2
○ step
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Cucumber - Steps
● Given, Dado un contexto inicial
● When, Cuando un evento se produce
● Then, Entonces asegure algunos
resultados.
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Cucumber - Ejemplo
Feature: Adición
Para evitar hacer errores tontos
Como un matemático idiota
Quiero saber la suma de los números
Scenario: Sumar dos números
Dado que he introducido <entrada_1> en la calculadora
Y que he introducido <entrada_2> en la calculadora
Cuando pulso el <botón>
Entonces el resultado debe ser <resultado> en la pantalla
Ejemplos:
| entrada_1 | entrada_2 | botón | resultado |
| 20 | 30 | add | 50 |
| 2 | 5 | add | 7 |
| 0 | 40 | add | 40 |
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
SMART User Stories
● Specific
● Measurable
● Achievable
● Relevant (5 Whys)
● Timeboxed
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Referencias
● Specification By Example - Gojko Adzic
● http://dannorth.net/introducing-bdd/
● http://weblogs.java.net/blog/johnsmart/archive/2012/09/12/does-atdd-
really-save-you-time
● http://testobsessed.com/2008/12/acceptance-test-driven-development-
atdd-an-overview/
Introducción ATDD
Paulo Clavijo Esteban - Marzo 2013
Sobre el Autor:
Paulo Clavijo Esteban
Software Developer
Blog: www.lintips.com
Email: paucls@gmail.com

Más contenido relacionado

La actualidad más candente

Introducción a la ingeniería del software - cuestionario
Introducción a la ingeniería del software -  cuestionarioIntroducción a la ingeniería del software -  cuestionario
Introducción a la ingeniería del software - cuestionarioSamuelSanchez136
 
La ingeniería de requerimiento en el proceso ágil
La ingeniería de requerimiento en el proceso ágilLa ingeniería de requerimiento en el proceso ágil
La ingeniería de requerimiento en el proceso ágilSoftware Guru
 
Desarrollo iterativo e incremental
Desarrollo iterativo e incrementalDesarrollo iterativo e incremental
Desarrollo iterativo e incrementalnoriver
 
Clase3b especificacion qualityattributesyqaw
Clase3b especificacion qualityattributesyqawClase3b especificacion qualityattributesyqaw
Clase3b especificacion qualityattributesyqawRubens Diaz Pulli
 
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 .NETLa Red DBAccess
 
Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Softwarearacelij
 
SCRUM + KANBAN = SCRUMBAN
SCRUM + KANBAN = SCRUMBANSCRUM + KANBAN = SCRUMBAN
SCRUM + KANBAN = SCRUMBANYesi Campa
 
Ingeniería de Software
Ingeniería de SoftwareIngeniería de Software
Ingeniería de SoftwareUacm Lis Slt
 
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareEstándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareDaniel Guaycha
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareantonio
 
CMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptableCMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptableSoftware Guru
 
Casos practicos puntos_de_funcion1
Casos practicos puntos_de_funcion1Casos practicos puntos_de_funcion1
Casos practicos puntos_de_funcion1Homero Jimenez
 
Una introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abadUna introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abadJorge Hernán Abad Londoño
 
Historias de usuario¿Por qué? ¿Qué son? ¿Cómo son?
Historias de usuario¿Por qué? ¿Qué son? ¿Cómo son?Historias de usuario¿Por qué? ¿Qué son? ¿Cómo son?
Historias de usuario¿Por qué? ¿Qué son? ¿Cómo son?Miquel Mora
 

La actualidad más candente (20)

Arquitectura de microservicios
Arquitectura de microserviciosArquitectura de microservicios
Arquitectura de microservicios
 
Introducción a la ingeniería del software - cuestionario
Introducción a la ingeniería del software -  cuestionarioIntroducción a la ingeniería del software -  cuestionario
Introducción a la ingeniería del software - cuestionario
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
La ingeniería de requerimiento en el proceso ágil
La ingeniería de requerimiento en el proceso ágilLa ingeniería de requerimiento en el proceso ágil
La ingeniería de requerimiento en el proceso ágil
 
Desarrollo iterativo e incremental
Desarrollo iterativo e incrementalDesarrollo iterativo e incremental
Desarrollo iterativo e incremental
 
8.realizacion de pruebas
8.realizacion de pruebas8.realizacion de pruebas
8.realizacion de pruebas
 
Clase3b especificacion qualityattributesyqaw
Clase3b especificacion qualityattributesyqawClase3b especificacion qualityattributesyqaw
Clase3b especificacion qualityattributesyqaw
 
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
 
Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Software
 
SCRUM + KANBAN = SCRUMBAN
SCRUM + KANBAN = SCRUMBANSCRUM + KANBAN = SCRUMBAN
SCRUM + KANBAN = SCRUMBAN
 
Metodología scrum
Metodología scrumMetodología scrum
Metodología scrum
 
Presentación de Scrum
Presentación de ScrumPresentación de Scrum
Presentación de Scrum
 
Ingeniería de Software
Ingeniería de SoftwareIngeniería de Software
Ingeniería de Software
 
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareEstándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto software
 
CMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptableCMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptable
 
Casos practicos puntos_de_funcion1
Casos practicos puntos_de_funcion1Casos practicos puntos_de_funcion1
Casos practicos puntos_de_funcion1
 
Una introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abadUna introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abad
 
Historias de usuario¿Por qué? ¿Qué son? ¿Cómo son?
Historias de usuario¿Por qué? ¿Qué son? ¿Cómo son?Historias de usuario¿Por qué? ¿Qué son? ¿Cómo son?
Historias de usuario¿Por qué? ¿Qué son? ¿Cómo son?
 
Mapa mental de Ing. de requisito y requerimiento
Mapa mental de Ing. de requisito y requerimientoMapa mental de Ing. de requisito y requerimiento
Mapa mental de Ing. de requisito y requerimiento
 

Destacado

Cucumber - Curso de Automatización de Pruebas
Cucumber - Curso de Automatización de PruebasCucumber - Curso de Automatización de Pruebas
Cucumber - Curso de Automatización de PruebasTestingBaires
 
Curso TDD Ruby on Rails #02: Test Driven Development
Curso TDD  Ruby on Rails #02: Test Driven DevelopmentCurso TDD  Ruby on Rails #02: Test Driven Development
Curso TDD Ruby on Rails #02: Test Driven DevelopmentAlberto Perdomo
 
Acceptance Test-driven Development with Cucumber-jvm
Acceptance Test-driven Development with Cucumber-jvmAcceptance Test-driven Development with Cucumber-jvm
Acceptance Test-driven Development with Cucumber-jvmChristopher Bartling
 
Introduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for JavaIntroduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for JavaJoris De Winne
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in PracticeSteven Mak
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp deborahgal
 
Caja de Herramientas para un Equipo Scrum de Alto Rendimiento
Caja de Herramientas para un Equipo Scrum de Alto RendimientoCaja de Herramientas para un Equipo Scrum de Alto Rendimiento
Caja de Herramientas para un Equipo Scrum de Alto RendimientoRaúl Herranz
 

Destacado (10)

Cucumber - Curso de Automatización de Pruebas
Cucumber - Curso de Automatización de PruebasCucumber - Curso de Automatización de Pruebas
Cucumber - Curso de Automatización de Pruebas
 
Tests de aceptación con cucumber
Tests de aceptación con cucumberTests de aceptación con cucumber
Tests de aceptación con cucumber
 
Cucumber
CucumberCucumber
Cucumber
 
Curso TDD Ruby on Rails #02: Test Driven Development
Curso TDD  Ruby on Rails #02: Test Driven DevelopmentCurso TDD  Ruby on Rails #02: Test Driven Development
Curso TDD Ruby on Rails #02: Test Driven Development
 
Acceptance Test-driven Development with Cucumber-jvm
Acceptance Test-driven Development with Cucumber-jvmAcceptance Test-driven Development with Cucumber-jvm
Acceptance Test-driven Development with Cucumber-jvm
 
Introduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for JavaIntroduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for Java
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in Practice
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp
 
Caja de Herramientas para un Equipo Scrum de Alto Rendimiento
Caja de Herramientas para un Equipo Scrum de Alto RendimientoCaja de Herramientas para un Equipo Scrum de Alto Rendimiento
Caja de Herramientas para un Equipo Scrum de Alto Rendimiento
 
Unit tesing y el mito de los 0 bugs
Unit tesing y el mito de los 0 bugsUnit tesing y el mito de los 0 bugs
Unit tesing y el mito de los 0 bugs
 

Similar a ATDD - Desarrollo Dirigido por Test de Aceptación

Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesJobsket
 
Agile, en que te hemos convertido v2
Agile, en que te hemos convertido v2Agile, en que te hemos convertido v2
Agile, en que te hemos convertido v2Eduardo Ferro Aldama
 
15 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 200915 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 2009Pepe
 
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberAutomatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberSoftware Guru
 
Testing automatizado, ¿qué futuro me espera? - Gonzalo Mancebo
Testing automatizado, ¿qué futuro me espera? - Gonzalo ManceboTesting automatizado, ¿qué futuro me espera? - Gonzalo Mancebo
Testing automatizado, ¿qué futuro me espera? - Gonzalo ManceboGeneXus
 
Crowdar - Introducción a BDD
Crowdar - Introducción a BDDCrowdar - Introducción a BDD
Crowdar - Introducción a BDDJavier Re
 
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
 
Taller google Apps Script
Taller google Apps ScriptTaller google Apps Script
Taller google Apps ScriptGDG Lima
 
Meetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderMeetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderEduardo Riol
 
Google apps script
Google apps scriptGoogle apps script
Google apps scriptGDG Lima
 
Argentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting
 
BPM: desde los modelos a los sistemas basados en procesos de negocio ¿qué se ...
BPM: desde los modelos a los sistemas basados en procesos de negocio ¿qué se ...BPM: desde los modelos a los sistemas basados en procesos de negocio ¿qué se ...
BPM: desde los modelos a los sistemas basados en procesos de negocio ¿qué se ...GeneXus
 
Si la gestión y desarrollo de requisitos es tan importante... ¿Por qué no la...
Si la gestión y desarrollo de requisitos es tan importante...  ¿Por qué no la...Si la gestión y desarrollo de requisitos es tan importante...  ¿Por qué no la...
Si la gestión y desarrollo de requisitos es tan importante... ¿Por qué no la...Pepe
 
Charla Tdd Uji 032010
Charla Tdd Uji 032010Charla Tdd Uji 032010
Charla Tdd Uji 032010Carlos Ble
 
Entrega contínua en la práctica
Entrega contínua en la prácticaEntrega contínua en la práctica
Entrega contínua en la prácticaCarlos Fuentes
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentJavier Novoa Cataño
 

Similar a ATDD - Desarrollo Dirigido por Test de Aceptación (20)

Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
Agile, en que te hemos convertido v2
Agile, en que te hemos convertido v2Agile, en que te hemos convertido v2
Agile, en que te hemos convertido v2
 
15 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 200915 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 2009
 
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberAutomatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
 
Testing automatizado, ¿qué futuro me espera? - Gonzalo Mancebo
Testing automatizado, ¿qué futuro me espera? - Gonzalo ManceboTesting automatizado, ¿qué futuro me espera? - Gonzalo Mancebo
Testing automatizado, ¿qué futuro me espera? - Gonzalo Mancebo
 
Scrum Resumen
Scrum ResumenScrum Resumen
Scrum Resumen
 
Crowdar - Introducción a BDD
Crowdar - Introducción a BDDCrowdar - Introducción a BDD
Crowdar - Introducción a BDD
 
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
 
Cobertura de pruebas unitarias - NetBaires
Cobertura de pruebas unitarias - NetBairesCobertura de pruebas unitarias - NetBaires
Cobertura de pruebas unitarias - NetBaires
 
Cobertura de pruebas unitarias en C#
Cobertura de pruebas unitarias en C#Cobertura de pruebas unitarias en C#
Cobertura de pruebas unitarias en C#
 
Taller google Apps Script
Taller google Apps ScriptTaller google Apps Script
Taller google Apps Script
 
Meetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderMeetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poder
 
Google apps script
Google apps scriptGoogle apps script
Google apps script
 
Argentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágil
 
BPM: desde los modelos a los sistemas basados en procesos de negocio ¿qué se ...
BPM: desde los modelos a los sistemas basados en procesos de negocio ¿qué se ...BPM: desde los modelos a los sistemas basados en procesos de negocio ¿qué se ...
BPM: desde los modelos a los sistemas basados en procesos de negocio ¿qué se ...
 
Si la gestión y desarrollo de requisitos es tan importante... ¿Por qué no la...
Si la gestión y desarrollo de requisitos es tan importante...  ¿Por qué no la...Si la gestión y desarrollo de requisitos es tan importante...  ¿Por qué no la...
Si la gestión y desarrollo de requisitos es tan importante... ¿Por qué no la...
 
La disciplina BPM
La disciplina BPMLa disciplina BPM
La disciplina BPM
 
Charla Tdd Uji 032010
Charla Tdd Uji 032010Charla Tdd Uji 032010
Charla Tdd Uji 032010
 
Entrega contínua en la práctica
Entrega contínua en la prácticaEntrega contínua en la práctica
Entrega contínua en la práctica
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven Development
 

Más de Paulo Clavijo

Consumer-Driven Contract Testing - Workshop - January 2021
Consumer-Driven Contract Testing - Workshop - January 2021Consumer-Driven Contract Testing - Workshop - January 2021
Consumer-Driven Contract Testing - Workshop - January 2021Paulo Clavijo
 
User story slicing exercise
User story slicing exerciseUser story slicing exercise
User story slicing exercisePaulo Clavijo
 
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020Paulo Clavijo
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019Paulo Clavijo
 
Legacy Code and Refactoring Workshop - Session 1 - October 2019
Legacy Code and Refactoring Workshop - Session 1 - October 2019Legacy Code and Refactoring Workshop - Session 1 - October 2019
Legacy Code and Refactoring Workshop - Session 1 - October 2019Paulo Clavijo
 
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019Approval Testing & Mutation Testing - Cork Software Crafters - June 2019
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019Paulo Clavijo
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019Paulo Clavijo
 
TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018Paulo Clavijo
 
Outside-in TDD with Test Doubles
Outside-in TDD with Test DoublesOutside-in TDD with Test Doubles
Outside-in TDD with Test DoublesPaulo Clavijo
 
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018Paulo Clavijo
 
Consumer-Driven Contract Testing
Consumer-Driven Contract TestingConsumer-Driven Contract Testing
Consumer-Driven Contract TestingPaulo Clavijo
 
Tests Unitarios con JUnit 4
Tests Unitarios con JUnit 4Tests Unitarios con JUnit 4
Tests Unitarios con JUnit 4Paulo Clavijo
 
Gestión de Cambios de BBDD con LiquiBase
Gestión de Cambios de BBDD con LiquiBaseGestión de Cambios de BBDD con LiquiBase
Gestión de Cambios de BBDD con LiquiBasePaulo Clavijo
 
Introducción a Spring Roo
Introducción a Spring RooIntroducción a Spring Roo
Introducción a Spring RooPaulo Clavijo
 

Más de Paulo Clavijo (15)

Consumer-Driven Contract Testing - Workshop - January 2021
Consumer-Driven Contract Testing - Workshop - January 2021Consumer-Driven Contract Testing - Workshop - January 2021
Consumer-Driven Contract Testing - Workshop - January 2021
 
User story slicing exercise
User story slicing exerciseUser story slicing exercise
User story slicing exercise
 
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
 
Legacy Code and Refactoring Workshop - Session 1 - October 2019
Legacy Code and Refactoring Workshop - Session 1 - October 2019Legacy Code and Refactoring Workshop - Session 1 - October 2019
Legacy Code and Refactoring Workshop - Session 1 - October 2019
 
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019Approval Testing & Mutation Testing - Cork Software Crafters - June 2019
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019
 
TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018
 
Outside-in TDD with Test Doubles
Outside-in TDD with Test DoublesOutside-in TDD with Test Doubles
Outside-in TDD with Test Doubles
 
Angular and Redux
Angular and ReduxAngular and Redux
Angular and Redux
 
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
 
Consumer-Driven Contract Testing
Consumer-Driven Contract TestingConsumer-Driven Contract Testing
Consumer-Driven Contract Testing
 
Tests Unitarios con JUnit 4
Tests Unitarios con JUnit 4Tests Unitarios con JUnit 4
Tests Unitarios con JUnit 4
 
Gestión de Cambios de BBDD con LiquiBase
Gestión de Cambios de BBDD con LiquiBaseGestión de Cambios de BBDD con LiquiBase
Gestión de Cambios de BBDD con LiquiBase
 
Introducción a Spring Roo
Introducción a Spring RooIntroducción a Spring Roo
Introducción a Spring Roo
 

Último

LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 

Último (20)

LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 

ATDD - Desarrollo Dirigido por Test de Aceptación

  • 1. ATDD Desarrollo Dirigido por Tests de Aceptación Paulo Clavijo Esteban - Marzo 2013
  • 2. Agenda ● Specification by Example ● ATDD ● Cucumber Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 3. Specification by Example "Desarrollar sin pruebas unitarias automatizadas y sin pruebas de aceptación es simplemente, construir código legado desde el momento cero!" Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 4. Specification by Example ● Los test unitarios aseguran que la aplicación se ha construido correctamente. ● Los test de aceptación aseguran que se ha desarrollado la funcionalidad esperada. Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 5. Specification by Example Los requerimientos son tests Los tests son requerimientos Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 6. Specification by Example ● Diferentes modelos: ● BDD - Behavior Driven Development (Desarrollo Guiado por el Comportamiento) ● ATDD - Acceptance Test Driven Development (Desarrollo Guiado por pruebas de aceptación) Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 7. ATDD "Acceptance Test Driven Development (ATDD) is a practice in which the whole team collaboratively discusses acceptance criteria, with examples, and then distills them into a set of concrete acceptance tests before development begins. It’s the best way I know to ensure that we all have the same shared understanding of what it is we’re actually building. It’s also the best way I know to ensure we have a shared definition of Done. Obviously I think this is an important Agile development practice. In fact, it’s one of the core pieces of my Agile Testing class. Yet somehow I have neglected to write about it much on this blog. Time to rectify that." Elisabeth Hendrickson. Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 8. ATDD ● TDD y ATDD no son técnicas de test son herramientas de diseño para escribir código limpio, código que hace lo esperado por el cliente, etc. Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 9. ATDD Las pruebas de aceptación son escritas ANTES de la funcionalidad. Siguiendo los siguientes pasos: ● Tome una historia de usuario ● Escriba las pruebas de aceptación en el lenguaje de dominio del cliente ● Automatice las pruebas de aceptación ● Implemente la funcionalidad. Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 10.
  • 11. Beneficios de ATDD ● Ejemplos reales y un lenguaje común para entender el dominio. ● Permite identificar correctamente las reglas de negocio. ● Los flujos de trabajo funcionan desde el primer momento. ● Criterio visible para dar por finalizadas las historias de usuario. Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 12. Beneficios de ATDD ● No implementamos nada hasta tener definidos los tests. Se reduce el tiempo perdido reprogramando. ● Living Documentation: Documentación y test de aceptación siempre actualizados. ● Validación automática. Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 14. Especificaciones ejecutables ● JUnit, Selenium, etc. (Lenguaje entendido solo por desarrolladores) ● Aceptance Test Framework ○ Cucumber ○ Concordion ○ Fitnesee ○ Robot Framework
  • 15. Cucumber - Features ● Feature (Historia de Usuario) ○ Como ○ Quiero ○ Para ● Escenario 1 ○ step ○ step ● Escenario 2 ○ step Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 16. Cucumber - Steps ● Given, Dado un contexto inicial ● When, Cuando un evento se produce ● Then, Entonces asegure algunos resultados. Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 17. Cucumber - Ejemplo Feature: Adición Para evitar hacer errores tontos Como un matemático idiota Quiero saber la suma de los números Scenario: Sumar dos números Dado que he introducido <entrada_1> en la calculadora Y que he introducido <entrada_2> en la calculadora Cuando pulso el <botón> Entonces el resultado debe ser <resultado> en la pantalla Ejemplos: | entrada_1 | entrada_2 | botón | resultado | | 20 | 30 | add | 50 | | 2 | 5 | add | 7 | | 0 | 40 | add | 40 | Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 18.
  • 19. SMART User Stories ● Specific ● Measurable ● Achievable ● Relevant (5 Whys) ● Timeboxed Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 20. Referencias ● Specification By Example - Gojko Adzic ● http://dannorth.net/introducing-bdd/ ● http://weblogs.java.net/blog/johnsmart/archive/2012/09/12/does-atdd- really-save-you-time ● http://testobsessed.com/2008/12/acceptance-test-driven-development- atdd-an-overview/ Introducción ATDD Paulo Clavijo Esteban - Marzo 2013
  • 21. Sobre el Autor: Paulo Clavijo Esteban Software Developer Blog: www.lintips.com Email: paucls@gmail.com