ATDDDesarrollo Dirigido por Tests de AceptaciónPaulo Clavijo Esteban - Marzo 2013
Agenda● Specification by Example● ATDD● CucumberIntroducción ATDDPaulo Clavijo Esteban - Marzo 2013
Specification by Example"Desarrollar sin pruebas unitariasautomatizadas y sin pruebas de aceptaciónes simplemente, constru...
Specification by Example● Los test unitarios aseguran que la aplicaciónse ha construido correctamente.● Los test de acepta...
Specification by ExampleLos requerimientos son testsLos tests son requerimientosIntroducción ATDDPaulo Clavijo Esteban - M...
Specification by Example● Diferentes modelos:● BDD - Behavior Driven Development(Desarrollo Guiado por el Comportamiento)●...
ATDD"Acceptance Test Driven Development (ATDD) is a practice in which thewhole team collaboratively discusses acceptance c...
ATDD● TDD y ATDD no son técnicas de test sonherramientas de diseño para escribir códigolimpio, código que hace lo esperado...
ATDDLas pruebas de aceptación son escritas ANTES de la funcionalidad. Siguiendolos siguientes pasos:● Tome una historia de...
Beneficios de ATDD● Ejemplos reales y un lenguaje común para entender eldominio.● Permite identificar correctamente las re...
Beneficios de ATDD● No implementamos nada hasta tener definidos los tests.Se reduce el tiempo perdido reprogramando.● Livi...
QuiénIntroducción ATDDPaulo Clavijo Esteban - Marzo 2013
Especificaciones ejecutables● JUnit, Selenium, etc.(Lenguaje entendido solo por desarrolladores)● Aceptance Test Framework...
Cucumber - Features● Feature (Historia de Usuario)○ Como○ Quiero○ Para● Escenario 1○ step○ step● Escenario 2○ stepIntroduc...
Cucumber - Steps● Given, Dado un contexto inicial● When, Cuando un evento se produce● Then, Entonces asegure algunosresult...
Cucumber - EjemploFeature: AdiciónPara evitar hacer errores tontosComo un matemático idiotaQuiero saber la suma de los núm...
SMART User Stories● Specific● Measurable● Achievable● Relevant (5 Whys)● TimeboxedIntroducción ATDDPaulo Clavijo Esteban -...
Referencias● Specification By Example - Gojko Adzic● http://dannorth.net/introducing-bdd/● http://weblogs.java.net/blog/jo...
Sobre el Autor:Paulo Clavijo EstebanSoftware DeveloperBlog: www.lintips.comEmail: paucls@gmail.com
ATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de Aceptación
Próxima SlideShare
Cargando en…5
×

ATDD - Desarrollo Dirigido por Test de Aceptación

5.236 visualizaciones

Publicado el

Presentación utilizada en charla introductoria a ATDD.
Paulo Clavijo 2013

Publicado en: Tecnología
1 comentario
4 recomendaciones
Estadísticas
Notas
Sin descargas
Visualizaciones
Visualizaciones totales
5.236
En SlideShare
0
De insertados
0
Número de insertados
14
Acciones
Compartido
0
Descargas
77
Comentarios
1
Recomendaciones
4
Insertados 0
No insertados

No hay notas en la diapositiva.

ATDD - Desarrollo Dirigido por Test de Aceptación

  1. 1. ATDDDesarrollo Dirigido por Tests de AceptaciónPaulo Clavijo Esteban - Marzo 2013
  2. 2. Agenda● Specification by Example● ATDD● CucumberIntroducción ATDDPaulo Clavijo Esteban - Marzo 2013
  3. 3. Specification by Example"Desarrollar sin pruebas unitariasautomatizadas y sin pruebas de aceptaciónes simplemente, construir código legadodesde el momento cero!"Introducción ATDDPaulo Clavijo Esteban - Marzo 2013
  4. 4. Specification by Example● Los test unitarios aseguran que la aplicaciónse ha construido correctamente.● Los test de aceptación aseguran que se hadesarrollado la funcionalidad esperada.Introducción ATDDPaulo Clavijo Esteban - Marzo 2013
  5. 5. Specification by ExampleLos requerimientos son testsLos tests son requerimientosIntroducción ATDDPaulo Clavijo Esteban - Marzo 2013
  6. 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 ATDDPaulo Clavijo Esteban - Marzo 2013
  7. 7. ATDD"Acceptance Test Driven Development (ATDD) is a practice in which thewhole team collaboratively discusses acceptance criteria, with examples,and then distills them into a set of concrete acceptance tests beforedevelopment begins. It’s the best way I know to ensure that we all havethe same shared understanding of what it is we’re actually building. It’salso 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 haveneglected to write about it much on this blog. Time to rectify that."Elisabeth Hendrickson.Introducción ATDDPaulo Clavijo Esteban - Marzo 2013
  8. 8. ATDD● TDD y ATDD no son técnicas de test sonherramientas de diseño para escribir códigolimpio, código que hace lo esperado por elcliente, etc.Introducción ATDDPaulo Clavijo Esteban - Marzo 2013
  9. 9. ATDDLas pruebas de aceptación son escritas ANTES de la funcionalidad. Siguiendolos 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 ATDDPaulo Clavijo Esteban - Marzo 2013
  10. 10. Beneficios de ATDD● Ejemplos reales y un lenguaje común para entender eldominio.● Permite identificar correctamente las reglas de negocio.● Los flujos de trabajo funcionan desde el primer momento.● Criterio visible para dar por finalizadas las historias deusuario.Introducción ATDDPaulo Clavijo Esteban - Marzo 2013
  11. 11. Beneficios de ATDD● No implementamos nada hasta tener definidos los tests.Se reduce el tiempo perdido reprogramando.● Living Documentation: Documentación y test deaceptación siempre actualizados.● Validación automática.Introducción ATDDPaulo Clavijo Esteban - Marzo 2013
  12. 12. QuiénIntroducción ATDDPaulo Clavijo Esteban - Marzo 2013
  13. 13. Especificaciones ejecutables● JUnit, Selenium, etc.(Lenguaje entendido solo por desarrolladores)● Aceptance Test Framework○ Cucumber○ Concordion○ Fitnesee○ Robot Framework
  14. 14. Cucumber - Features● Feature (Historia de Usuario)○ Como○ Quiero○ Para● Escenario 1○ step○ step● Escenario 2○ stepIntroducción ATDDPaulo Clavijo Esteban - Marzo 2013
  15. 15. Cucumber - Steps● Given, Dado un contexto inicial● When, Cuando un evento se produce● Then, Entonces asegure algunosresultados.Introducción ATDDPaulo Clavijo Esteban - Marzo 2013
  16. 16. Cucumber - EjemploFeature: AdiciónPara evitar hacer errores tontosComo un matemático idiotaQuiero saber la suma de los númerosScenario: Sumar dos númerosDado que he introducido <entrada_1> en la calculadoraY que he introducido <entrada_2> en la calculadoraCuando pulso el <botón>Entonces el resultado debe ser <resultado> en la pantallaEjemplos:| entrada_1 | entrada_2 | botón | resultado || 20 | 30 | add | 50 || 2 | 5 | add | 7 || 0 | 40 | add | 40 |Introducción ATDDPaulo Clavijo Esteban - Marzo 2013
  17. 17. SMART User Stories● Specific● Measurable● Achievable● Relevant (5 Whys)● TimeboxedIntroducción ATDDPaulo Clavijo Esteban - Marzo 2013
  18. 18. 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 ATDDPaulo Clavijo Esteban - Marzo 2013
  19. 19. Sobre el Autor:Paulo Clavijo EstebanSoftware DeveloperBlog: www.lintips.comEmail: paucls@gmail.com

×