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

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 esperaVicenç García-Altés
 
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 equiposVicenç García-Altés
 
Especificaciones ejecutables, acercando negocio y desarrollo
Especificaciones ejecutables, acercando negocio y desarrolloEspecificaciones ejecutables, acercando negocio y desarrollo
Especificaciones ejecutables, acercando negocio y desarrolloVicenç García-Altés
 
Retrospective’s retrospective (extended version)
Retrospective’s retrospective (extended version)Retrospective’s retrospective (extended version)
Retrospective’s retrospective (extended version)Vicenç García-Altés
 
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 ScrumVicenç García-Altés
 
Automatización de pruebas funcionales
Automatización de pruebas funcionalesAutomatización de pruebas funcionales
Automatización de pruebas funcionalesVicenç García-Altés
 
Construcciones automatizadas multiplataforma con TFS2010
Construcciones automatizadas multiplataforma con TFS2010Construcciones automatizadas multiplataforma con TFS2010
Construcciones automatizadas multiplataforma con TFS2010Vicenç 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

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

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