SlideShare a Scribd company logo
1 of 31
References
• BDD in Action (http://www.manning.com/smart/)
• Bridging the communication gap
(http://www.acceptancetesting.info/the-book/)
• Specification by example
(http://specificationbyexample.com/)
• http://lizkeogh.com/2013/10/24/bdd-before-thetools/
• http://dannorth.net/introducing-bdd/

More Related Content

More from Vicenç García-Altés

Construcciones automatizadas multiplataforma con TFS2010
Construcciones automatizadas multiplataforma con TFS2010Construcciones automatizadas multiplataforma con TFS2010
Construcciones automatizadas multiplataforma con TFS2010
Vicenç García-Altés
 

More from Vicenç García-Altés (10)

Owin, katana y WebAPI
Owin, katana y WebAPIOwin, katana y WebAPI
Owin, katana y WebAPI
 
Novedades Visual Studio 2013
Novedades Visual Studio 2013Novedades Visual Studio 2013
Novedades Visual Studio 2013
 
Plain Concepts ALM Tour 2013 - Estamos construyendo lo que el cliente espera
Plain Concepts ALM Tour 2013 - Estamos construyendo lo que el cliente esperaPlain Concepts ALM Tour 2013 - Estamos construyendo lo que el cliente espera
Plain Concepts ALM Tour 2013 - Estamos construyendo lo que el cliente espera
 
Plain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equipos
Plain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equiposPlain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equipos
Plain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equipos
 
Especificaciones ejecutables, acercando negocio y desarrollo
Especificaciones ejecutables, acercando negocio y desarrolloEspecificaciones ejecutables, acercando negocio y desarrollo
Especificaciones ejecutables, acercando negocio y desarrollo
 
Retrospective’s retrospective (extended version)
Retrospective’s retrospective (extended version)Retrospective’s retrospective (extended version)
Retrospective’s retrospective (extended version)
 
Lo que nadie te va a contar sobre Scrum
Lo que nadie te va a contar sobre ScrumLo que nadie te va a contar sobre Scrum
Lo que nadie te va a contar sobre Scrum
 
Agile Inception
Agile InceptionAgile Inception
Agile Inception
 
Automatización de pruebas funcionales
Automatización de pruebas funcionalesAutomatización de pruebas funcionales
Automatización de pruebas funcionales
 
Construcciones automatizadas multiplataforma con TFS2010
Construcciones automatizadas multiplataforma con TFS2010Construcciones automatizadas multiplataforma con TFS2010
Construcciones automatizadas multiplataforma con TFS2010
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 

Bdd beyond testing

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. References • BDD in Action (http://www.manning.com/smart/) • Bridging the communication gap (http://www.acceptancetesting.info/the-book/) • Specification by example (http://specificationbyexample.com/) • http://lizkeogh.com/2013/10/24/bdd-before-thetools/ • http://dannorth.net/introducing-bdd/

Editor's Notes

  1. Vamos a ver un poco de historia. Todo esto empezó en 2003 gracias a Dan North. Dan siempre se encontraba con los mismos problemas planteados por sus alumnos de cursos de TDD: - Por donde empiezo? - Qué testeo? - Como llamo a mis tests? - Como entiendo pq un test ha fallado?Su respuesta a todo esto fue BDD.
  2. Lo primero que vio Dan es que estaban probando una herramienta que generaba una especie de documentación a partir de los proyectos de test (como el reporter de Jasmine). Vio que si los tests tenía como nombre una sentencia realizada con el lenguaje del dominio, les podía servir de documentación.
  3. Lo segundo que se dio cuenta es que empezar los tests con la palabra should, ayudaba a mantenerse focalizado, ya que esa clase o método solo podía testear eso.
  4. Un nombre expresivo es importante cuando un test falla. Al igual que un buen mensaje en el assert. Podemos saber pq ha fallado y lo que tenemos que arreglar con solo ver el nombre y el error.
  5. La palabra comportamiento es más útil que la palabra test. Si nuestros métodos de test no están definiendo el comportamiento de nuestro sistema, tendremos una falsa sensación de seguridad. Centrarnos en el comportamiento nos ayuda muchísimo en el desarrollo. Y de aquí nació el término BDD y jBehave, el primer framework basado en jUnit.
  6. Dan charló de todo esto con Chris Matts (el autor del libro Commitment) y le hizo ver la importancia del valor de negocio en BDD. Cuando estamos desarrollando nos tenemos que preguntar: qué es lo siguiente más importante que el sistema no hace? Y eso es lo que tenemos que implementar. Eso es lo que nos hará entregar el mayor valor.
  7. Explicando todo esto a Chris Matts (el lenguaje utilizado en BDD) Chris le hizo ver que era lo mismo que un análisis. Lo que estaban describiendo los tests de Dan eran los requisitos del sistema. Se podían utilizar estos comportamientos para definir los requisitos de un sistema. Solo se necesitaba encontrar un vocabulario que todo el mundo pudiera utilizar y que eliminara las ambigüedades y faltas de entendimiento entre la gente de negocio y los desarrolladores.
  8. BDD da un lenguaje ubícuo para la fase de análisis. Un lenguaje que puede entender la gente de negocio, los desarrolladores, testers, etc. Se desarrolla el patrón Given, When, Then.
  9. Los criterios de aceptación tienen que ser ejecutables. Nos da velocidad, tests de regresión, etc.
  10. Es como las histórias de usuario: CardConversationConfirmation
  11. Pq hacemos todo esto?
  12. Lo hacemos por dinero! En el 2012, la fuerza armada estadounidense pago 1 billón de dólares por un proyecto para mejorar el abastecimiento de las tropas. 7 años de desarrollo después todavía era utilizable y llevaba un coste de 1.1 billones de dólares extra.Obama healthcare costó 618 millones de euros y el dia que se lanzó no funcionaba.En lo que más pierde la industria del software es por no saber lo que necesitamos hacer.Obviamente antes de todo esto hay una etapa de descubrir estos requisitos. Real options, deliberate Discovery, featureinjection, impactmapping, etc.
  13. Hacer este tipo de técnicas nos permites saltar el agujero que hay entre lo que unos y otros entienden de un proyecto. Esto viene de dar cosas por supuestas, de no preguntar, etc.“The single biggest problema in communicationistheillusionthatit has taken place” – George Bernard Shaw (Founder of London School of Echonomics)Como podemos salvar estas diferencias?
  14. Con ejemplos. Si os paráis a pensar, siempre hemos trabajado con ejemplos. Pero estos ejemplos no se comunican.
  15. Necesitamos diversidad cognitiva. Los grupos sin diversidad cognitiva tienden a llegar a consensos rápidos. Si yo me rehúno con unos amigos muy culés, llegaré a la conclusión que el Espanyol se va a dejar ganar contra el Madrid (y el campo aplaudirá) y que el Levante jugó primado (y mucho). Esto es cierto, pero podría no serlo.Si me reuno con gente que sepa de futbol y que sea de diferentes equipos, haré un estudio mucho más pormenorizado de los partidos.Cada uno es bueno sacando ejemplos de su área (happypath, cosas de desarrollo, testing, etc).
  16. Living documentation. Una de las ventajas que nos da BDD es el de tener como resultado una documentación viva, que se modifica asiduamente, que se va a mirar siempre que hay dudas y que es ejecutable.
  17. Ganamos en entendimiento compartido. Todas las partes saben de que están hablando.
  18. Este es el patrón típico de BDD. Estas especificaciones hay que tratarlas como el código: - Que sean fáciles de leer y mantener. - Eliminar la duplicidad - tablas - scenariooutline + example
  19. Y sobretodo ser expresivo. Centrarnos en el qué y no en el como. Un escenario no debe ser un script de test, on debe meterse en UI ni especificar los pasos que hay que hacer. Debe centrarse en temas de negocio. Si hace falta automatizar la UI tenemos que utilizar page objects.
  20. Ciclo de BDD