ATDDDesarrollo Dirigido por Tests de Aceptación
Paulo Clavijo Esteban - Marzo 2013
Agenda
● Specification by Example● ATDD● Cucumber
Introducción ATDDPaulo 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 ATDDPaulo 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 ATDDPaulo Clavijo Esteban - Marzo 2013
Specification by Example
Los requerimientos son testsLos tests son requerimientos
Introducción ATDDPaulo 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 ATDDPaulo 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 ATDDPaulo 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 ATDDPaulo Clavijo Esteban - Marzo 2013
ATDDLas 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 ATDDPaulo 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 ATDDPaulo 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 ATDDPaulo Clavijo Esteban - Marzo 2013
Quién
Introducción ATDDPaulo 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 ATDDPaulo Clavijo Esteban - Marzo 2013
Cucumber - Steps
● Given, Dado un contexto inicial
● When, Cuando un evento se produce
● Then, Entonces asegure algunos resultados.
Introducción ATDDPaulo Clavijo Esteban - Marzo 2013
Cucumber - EjemploFeature: 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 ATDDPaulo Clavijo Esteban - Marzo 2013
SMART User Stories
● Specific● Measurable● Achievable● Relevant (5 Whys)
● Timeboxed
Introducción ATDDPaulo 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 ATDDPaulo Clavijo Esteban - Marzo 2013
Sobre el Autor:
Paulo Clavijo EstebanSoftware Developer
Blog: www.lintips.comEmail: [email protected]
Top Related