SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

DSDM (Dynamic System Development Method)
DSDM (Dynamic System Development Method)DSDM (Dynamic System Development Method)
DSDM (Dynamic System Development Method)
urumisama
 

Was ist angesagt? (20)

Dependency injection
Dependency injectionDependency injection
Dependency injection
 
2. Cascada De Fase Solapada
2. Cascada De Fase Solapada2. Cascada De Fase Solapada
2. Cascada De Fase Solapada
 
Dependency Inversion Principle
Dependency Inversion PrincipleDependency Inversion Principle
Dependency Inversion Principle
 
Agile Inception
Agile InceptionAgile Inception
Agile Inception
 
Reengenharia de Software
Reengenharia de SoftwareReengenharia de Software
Reengenharia de Software
 
Ti034 caso practico
Ti034  caso practicoTi034  caso practico
Ti034 caso practico
 
Metodologia web
Metodologia webMetodologia web
Metodologia web
 
Programacion Extrema
Programacion ExtremaProgramacion Extrema
Programacion Extrema
 
Introduction to SOLID Principles
Introduction to SOLID PrinciplesIntroduction to SOLID Principles
Introduction to SOLID Principles
 
DSDM (Dynamic System Development Method)
DSDM (Dynamic System Development Method)DSDM (Dynamic System Development Method)
DSDM (Dynamic System Development Method)
 
Dependency Injection in iOS
Dependency Injection in iOSDependency Injection in iOS
Dependency Injection in iOS
 
PSW Unidad 2 MODELOS DE PROCESO
PSW Unidad 2 MODELOS DE PROCESOPSW Unidad 2 MODELOS DE PROCESO
PSW Unidad 2 MODELOS DE PROCESO
 
Diseño de software modelo lineal (presentacion)
Diseño de software   modelo lineal (presentacion)Diseño de software   modelo lineal (presentacion)
Diseño de software modelo lineal (presentacion)
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slides
 
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?
 
Metodologia DSDM
Metodologia DSDMMetodologia DSDM
Metodologia DSDM
 
Spring Cloud Contract And Your Microservice Architecture
Spring Cloud Contract And Your Microservice ArchitectureSpring Cloud Contract And Your Microservice Architecture
Spring Cloud Contract And Your Microservice Architecture
 
Mongodb administración
Mongodb administraciónMongodb administración
Mongodb administración
 
Modelo de desarrollo concurrente
Modelo de desarrollo concurrenteModelo de desarrollo concurrente
Modelo de desarrollo concurrente
 
Angular Interview Questions & Answers
Angular Interview Questions & AnswersAngular Interview Questions & Answers
Angular Interview Questions & Answers
 

Andere mochten auch

Andere mochten auch (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
 

Ähnlich wie ATDD - Desarrollo Dirigido por Test de Aceptación

Taller google Apps Script
Taller google Apps ScriptTaller google Apps Script
Taller google Apps Script
GDG Lima
 
Google apps script
Google apps scriptGoogle apps script
Google apps script
GDG 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 ágil
Argentesting
 
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
 

Ähnlich wie 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
 

Mehr von Paulo Clavijo

Mehr von 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
 

Kürzlich hochgeladen

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Kürzlich hochgeladen (11)

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
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
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

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