SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#André Luiz
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)Renato Groff
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기KTH, 케이티하이텔
 
Feature Toggle
Feature ToggleFeature Toggle
Feature ToggleBryan Liu
 
Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Annelise Gripp
 
[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep Dive[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep DiveJi-Woong Choi
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoLuiz Costa
 
Testing en BDD con Python y Behave
Testing en BDD con Python y BehaveTesting en BDD con Python y Behave
Testing en BDD con Python y BehaveMario IC
 
Scrum em 15 minutos
Scrum em 15 minutosScrum em 15 minutos
Scrum em 15 minutosSerge Rehem
 
Un poco más de Agile y Scrum à la Pablo
Un poco más de Agile y Scrum à la PabloUn poco más de Agile y Scrum à la Pablo
Un poco más de Agile y Scrum à la PabloPablo García Montes
 

Mais procurados (20)

Curso gratuito de Agile y scrum
Curso gratuito de Agile y scrumCurso gratuito de Agile y scrum
Curso gratuito de Agile y scrum
 
User Story
User StoryUser Story
User Story
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 
Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기
 
Feature Toggle
Feature ToggleFeature Toggle
Feature Toggle
 
User Stories
User StoriesUser Stories
User Stories
 
Git flow
Git flowGit flow
Git flow
 
Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!
 
[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep Dive[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep Dive
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
 
Testing en BDD con Python y Behave
Testing en BDD con Python y BehaveTesting en BDD con Python y Behave
Testing en BDD con Python y Behave
 
Scrum em 15 minutos
Scrum em 15 minutosScrum em 15 minutos
Scrum em 15 minutos
 
Un poco más de Agile y Scrum à la Pablo
Un poco más de Agile y Scrum à la PabloUn poco más de Agile y Scrum à la Pablo
Un poco más de Agile y Scrum à la Pablo
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Agile Inception.pptx
Agile Inception.pptxAgile Inception.pptx
Agile Inception.pptx
 

Destaque

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
 

Destaque (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
 

Semelhante 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
 

Semelhante 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
 

Mais 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
 

Mais 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

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 

Último (13)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.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