Date post: | 13-Jun-2015 |
Category: |
Software |
Upload: | enrique-sanchez |
View: | 399 times |
Download: | 1 times |
BDD para la mejora de la calidad software
Enrique SánchezTechnical Team Lead @ Medianet Software
Más de 3 años 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 máximo los riesgos
Malentendidos gastan tiempo Defectos provocan retrasos Fallos en la planificación dañan tu reputación
“”
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
Eng
ine
eri
ng Product
Centrémonos en la comunicación Definamos un lenguaje común Anticipémonos a los problemas Mantengamos una buena documentación
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 términos del comportamiento deseado
Definamos lo que el software debe de hacer en términos del comportamiento deseado
BUSIN
ESS
Outside - InDesde negocio a desarrollo
Comunicaciónentre stakeholders, producto, desarrollo, testing…
Gherkin
Creamos una narrativa¿Por qué? Para tener un lenguaje común que todos entendamos ¿Cómo? Escenarios y Pasos
Narrativa
Ejemplo Describe
ImplementaDiseña
Feature
In order to definir un objetivo
As a Rol/actor
I want to descripción de lo que se va a hacer
Scenario
Given setup
When interacción/cambio/acción
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 documentación y fácil de aprender
¿Cómo funciona?
¿Qué proceso seguimos?Que pasos seguir para implementar BDD
Definimos los Acceptance Criteria
Features / Scenarios
Creamos una definición formal de un escenario
Hacemos algo de magia…
Creamos tests automáticos que hagan que prueben la funcionalidad
Creamos el entorno del proyecto
Evoluciona y adáptate
Personas antes que herramientasAdapta las herramientas a tu proceso no al revés
Podemos mejorar la comunicación Mantenemos a la gente involucrada Simplificamos el proceso Tenemos documentación actualizada
Entonces…
Preguntas?Gracias!