Upload
enrique-sanchez
View
18
Download
0
Embed Size (px)
DESCRIPTION
BDD Para La Mejora de La Calidad Software
Citation preview
BDD para la mejora de la calidad software
Enrique SnchezTechnical Team Lead @ Medianet Software
Ms de 3 aos de experiencia en empresas como
Evangelista BDD
Por qu esta charla?
Hay dos problemas fundamentales en el desarrollo de software !
1. Construir el software mal 2. Construir el software incorrecto
Coste de un cambio
Tiempo
Hay que reducir al mximo los riesgos
Malentendidos gastan tiempo Defectos provocan retrasos Fallos en la planificacin daan tu reputacin
56% of all bugs can be traced to errors made during the requirement stage.
Tom deMarco
68% failed projectsStandish Group Report 2009
I had a problem () Programmers wanted to know where to start, what to test and what not to test, how much to test in one go, what to call their tests, and how to understand why a test fails.
Better Software, March 2006 Dan North @tastapod
Eng
ine
eri
ng Product
Centrmonos en la comunicacin Definamos un lenguaje comn Anticipmonos a los problemas Mantengamos una buena documentacin
Behavior Driven Development
BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.
Agile specifications, BDD and Testing eXchange, November 2009 Dan North @tastapod
Definamos lo que el software debe de hacer en trminos del comportamiento deseado
Definamos lo que el software debe de hacer en trminos del comportamiento deseado
BUSINE
SS
Outside - InDesde negocio a desarrollo
Comunicacinentre stakeholders, producto, desarrollo, testing
Gherkin
Creamos una narrativaPor qu? Para tener un lenguaje comn que todos entendamos Cmo? Escenarios y Pasos
Narrativa
Ejemplo Describe
ImplementaDisea
Feature
In order to definir un objetivoAs a Rol/actorI want to descripcin de lo que se va a hacer
Scenario
Given setupWhen interaccin/cambio/accinThen comprobamos que todo fue como esperamos
Y en la vida real?
Qu herramientas usamos?Nosotros usamos Cucumber Framework BDD escrito en Ruby Por qu? Mucha documentacin y fcil de aprender
Cmo funciona?
Qu proceso seguimos?Que pasos seguir para implementar BDD
Definimos los Acceptance Criteria
Features / Scenarios
Creamos una definicin formal de un escenario
Hacemos algo de magia
Creamos tests automticos que hagan que prueben la funcionalidad
Creamos el entorno del proyecto
Evoluciona y adptate
Personas antes que herramientasAdapta las herramientas a tu proceso no al revs
Podemos mejorar la comunicacin Mantenemos a la gente involucrada Simplificamos el proceso Tenemos documentacin actualizada
Entonces
Preguntas?Gracias!
Enrique Snchez | [email protected] | @EnriqueSanchezB