Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Crowdar - Introducción a BDD

231 views

Published on

Presentación dictada por Agustín Mascheroni en nuestro seminario online de BDD con JBehave y TestNG

Published in: Software
  • Be the first to comment

Crowdar - Introducción a BDD

  1. 1. Introducción al desarrollo guiado por comportamiento (BDD) Mascheroni, Maximiliano Agustin Contact me at LinkedIn agustin.mascheroni@gmail.com www.crowdar.com.ar
  2. 2. Antes de comenzar ● Requerimientos: ◦ Conocimiento en pruebas de software. ◦ Conocimientos mínimos en pruebas automatizadas de software. ◦ Conocimientos mínimos de metodologías ágiles ● BDD = TDD + DDD
  3. 3. Introducción ● Nace como una buena práctica en la metodología XP (Programación Extrema) ● Hoy se la usa en muchas otras metodologías como: ◦ Proceso Unificado de Rational ◦ Scrum
  4. 4. TDD
  5. 5. Definición ● Desarrollo guiado por pruebas de software ● Surge de la fusión de otras dos prácticas: ◦ TFD (Test First Development) ◦ Refactoring (Refactorización)
  6. 6. Definición ● TFD: ◦ Consiste en escribir el test antes que el código fuente. ● Refactorización: ◦ Consiste en limpiar o mejorar el código (en este caso el test). ◦ Puede implicar arreglar un test que dejó de funcionar.
  7. 7. Ventajas ● Mayor Calidad. ● Diseño enfocado en las necesidades ● Mayor simplicidad en el diseño. ● Mayor productividad. ● Menos tiempo invertido en debugging.
  8. 8. Desventajas ● Difícil de implementar en la capa de Interfaz de Usuario. ● Estado de la Base de Datos. ● Errores no identificados (exceso de confianza). ● Curva de aprendizaje pronunciada.
  9. 9. Introducción ● Enfoque para el desarrollo de software con necesidades complejas. ● Realiza una profunda conexión entre la implementación y los conceptos del modelo y núcleo del negocio.
  10. 10. Premisas ● Enfocarse en el dominio y la necesidad, y no en la implementación. ● Apuntar hacia la colaboración entre los expertos del dominio, el negocio y los desarrolladores.
  11. 11. Premisas ● Utilizar el lenguaje ubicuo ◦ Expresar el dominio del problema en términos de negocio. ◦ Ejemplo: Como un doctor Quiero tener una planilla online con la historia clínica de mis pacientes De manera de consultarla desde cualquier lugar con conección a Internet
  12. 12. Introducción ● Es un proceso de desarrollo de software. ● Surge a partir del desarrollo guiado por pruebas (TDD), fusionado con DDD. ● Es una técnica para desarrollar software, pero puede utilizarse muy eficazmente en el desarrollo de pruebas automatizadas.
  13. 13. “BDD es una práctica ágil”
  14. 14. Agile Manifesto
  15. 15. BDD is about having conversations
  16. 16. BDD should make it easy to create software
  17. 17. A scenario is an idea, not a promise
  18. 18. A scenario is an idea, not a promise
  19. 19. Pruebas automatizadas ●Ágil ◦Velocidad ⚫Reducir tiempos ⚫Tiempos de pruebas
  20. 20. BDD
  21. 21. Test sin BDD
  22. 22. Test sin BDD
  23. 23. Test con BDD Scenario: Verificar que la página discografía se muestre Dado un usuario navegando en la página Mi Banda Cuando hace click en el botón discografía Entonces puede ver la página discrografía
  24. 24. Test con BDD Scenario: Verificar que la página discografía se muestre Dado un usuario navegando en la página Mi Banda (PASS) Cuando hace click en el botón discografía (PASS) Entonces puede ver la página discografía (FAIL) Assertion error: La página discografía no fue abierta
  25. 25. Componentes de BDD ● Característica (Feature) ◦ Historia (Story) ⚫ Escenario (Scenario) ⚫ Paso (Step) ● Cada historia tiene una narración, descrita utilizando lenguaje ubicuo
  26. 26. Historias de Usuario User stories are short, simple descriptions of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system. They typically follow a simple template: As a <type of user> I want <some goal> so that <some reason>.
  27. 27. Herramientas para BDD ● Jbehave (Java) ● Concordion (Java) ● Jasmine (JavaScript) ● Cucumber (Ruby) ● Behat (PHP) ● Behave (Python) ● Specflow (C#) ● Squish GUI Tester (Generic)
  28. 28. Conclusiones ● Permiten a las personas no técnicas involucrarse en el ciclo de pruebas. ● Comprensión del dominio. ● Pruebas automatizadas.
  29. 29. Bibliografía ● Kent Beck - Test Driven Development: By Example ● Mike Cohn – Mountain Go At Software. User Stories [Online] https://www.mountaingoatsoftware.com/agile/user-stories ● John Ferguson Smart - BDD in Action: Behavior-driven development for the whole software lifecycle ● Mike Cohn – Suceeding with Agile. ● Liz Keogh – Behavior Driven Development course at slide-share
  30. 30. Contacto Si está interesado en implementar una solución como esta contáctenos a info@crowdaronline.com

×