You are on page 1of 41

BDD para la mejora de la calidad

software

Enrique Snchez
Technical 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 projects

Standish 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

Engineering

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, multiplestakeholder, multiple-scale, high-automation, agile


methodology. It describes a cycle of interactions with welldefined 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

N
I
S
U
B

S
S
E

Definamos lo que el software debe de hacer en trminos del


comportamiento deseado

Outside - In
Desde negocio a desarrollo

Comunicacin

entre stakeholders, producto, desarrollo, testing

Gherkin

Creamos una narrativa


Por qu?
Para tener un lenguaje comn que
todos entendamos
Cmo?
Escenarios y Pasos

Narrativa

Ejemplo

Disea

Describe

Implementa

Feature
In order to definir un objetivo
As a Rol/actor
I want to descripcin de lo que se va a hacer

Scenario
Given setup
When interaccin/cambio/accin
Then 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 herramientas


Adapta las herramientas a tu proceso no al revs

Entonces
Podemos mejorar la comunicacin
Mantenemos a la gente involucrada
Simplificamos el proceso
Tenemos documentacin actualizada

Preguntas?
Gracias!

Enrique Snchez | hola@enrique-sanchez.me | @EnriqueSanchezB

You might also like