BDD Para La Mejora de La Calidad Software

41
BDD para la mejora de la calidad software

description

BDD Para La Mejora de La Calidad Software

Transcript of BDD Para La Mejora de La Calidad Software

  • 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