SlideShare una empresa de Scribd logo
1 de 25
Behaviour Driven DevelopmentBeyond “Given, When, Then” Antony Marcano
The Telephone Game http://www.brokenpicturetelephone.com/
What is BDD? Beyond “Given, When, Then”
BDD Origins ‘The deeper I got into TDD, the more I felt that my own journey had been less of a wax-on, wax-off process of gradual mastery than a series of blind alleys. I remember thinking “If only someone had told me that!”…  	I decided it must be possible to present TDD in a way that gets straight to the good stuff and avoids all the pitfalls.  My response is behaviour-driven development (BDD).  	Over time, BDD has grown to encompass the wider picture of agile analysis and automated acceptance testing.’ -Dan North
BDD Origins - Shortened “	Behaviour Driven Development (BDD) builds upon Test-Driven Development (TDD) by formalising the good habits of the best TDD practitioners. ” – The Cucumber Book, AslakHellesøy, Matt Wynne
Some ‘Good Habits’ Slice Vertically Work from the outside-in One example at a time
Slice Vertically
2009 8 Traditionally, development is sliced horizontally Private albums Share photos Create album Login User Story C User Story B User Story D User Story A Software Components (modules/classes) Software Components (modules/classes) Iteration n Iteration x Iteration n+1… Sprint n Sprint x Sprint n+1… time time …but defers feedback (often, until it’s too late)
2009 9 Vertical slicing Private albums Share photos Create album Login Share photos Create album Share photos Software Components (modules/classes) Iteration n Iteration x Iteration n+1 time …results in earlier feedback
Work from the outside-in
Outside-in
One example at a time
One example at a time
Implement story  driving with unit tests Scenario should pass Have a conversation For each  Example illustrating the story Elaborate as an automated  scenario  (aka acceptance         test) When all  Scenarios pass,  story is done (almost) One example at a time Test should fail
Expressing Examples Given, When, Then And beyond
Given When Then 	Given <some initial context> 	When <something happens> 	Then <some expectation>
Given When Then 	Given <some initial context> 		[and some additional context] 	When <something happens> 		[and something else happens] 	Then <some expectation> 		[and some more expectations]
A Typical Illustration Scenario: Login Successfully Given I am on the home-page When I enter the username ‘antony’ And I enter the password ‘p4$$w0rd’ And I click ‘login’ Then I should be logged in What’s wrong with this example?
A Better Illustration Scenario: Login Successfully When I login as ‘antony’ with the password ‘p4$$w0rd’ Then I should be logged in Why is it better?
Task Analysis A little UX for our BDD
Pitching it right… Goals		e.g. Withdraw Cash Tasks	Identify to bank 	Request amount (inter)actions 				Insert Card 			 	Enter Pin 				Press “Withdraw Cash”				 				Enter amount 				Press OK } Just right } Too low level
For example… When Iadd, the number ‘2’ and the number ’3’ task } actions http://cukesalad.info
Some nice side-effects Encourages description  of UI interactions in one place Makes it easier to execute scenarios via different interfaces
Discussion Questions? Ideas? Feedback?
antony@riverglide.com		@AntonyMarcano talktous@riverglide.com		@RiverGlide/rs http://twitter.com/RiverGlide/rs http://cukesalad.info			#cukesalad http://RiverGlide.com			@RiverGlide

Más contenido relacionado

Destacado

Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumberNibu Baby
 
Lessons From Sharding Solr At Etsy: Presented by Gregg Donovan, Etsy
Lessons From Sharding Solr At Etsy: Presented by Gregg Donovan, EtsyLessons From Sharding Solr At Etsy: Presented by Gregg Donovan, Etsy
Lessons From Sharding Solr At Etsy: Presented by Gregg Donovan, EtsyLucidworks
 
Specification by example - course summary
Specification by example - course summarySpecification by example - course summary
Specification by example - course summaryJakub Holy
 
The Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt EakinThe Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt EakinQA or the Highway
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentQASymphony
 
Acceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkAcceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkSteve Zhang
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bddantannatna
 
7 Common Mistakes in Go (2015)
7 Common Mistakes in Go (2015)7 Common Mistakes in Go (2015)
7 Common Mistakes in Go (2015)Steven Francia
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Vishal Biyani
 
Introduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaIntroduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaSeb Rose
 
An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)Usersnap
 

Destacado (13)

Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and CucumberTest Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
 
Lessons From Sharding Solr At Etsy: Presented by Gregg Donovan, Etsy
Lessons From Sharding Solr At Etsy: Presented by Gregg Donovan, EtsyLessons From Sharding Solr At Etsy: Presented by Gregg Donovan, Etsy
Lessons From Sharding Solr At Etsy: Presented by Gregg Donovan, Etsy
 
Top Node.js Metrics to Watch
Top Node.js Metrics to WatchTop Node.js Metrics to Watch
Top Node.js Metrics to Watch
 
Specification by example - course summary
Specification by example - course summarySpecification by example - course summary
Specification by example - course summary
 
The Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt EakinThe Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt Eakin
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven Development
 
Acceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkAcceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot Framework
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bdd
 
7 Common Mistakes in Go (2015)
7 Common Mistakes in Go (2015)7 Common Mistakes in Go (2015)
7 Common Mistakes in Go (2015)
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
 
Introduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaIntroduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for Java
 
An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)
 

Similar a BDD - beyond: Given, When and Then

TDD All the Things!
TDD All the Things!TDD All the Things!
TDD All the Things!Liz Keogh
 
Coding the right thing
Coding the right thingCoding the right thing
Coding the right thingBrandon Satrom
 
Customer Development - Identifying and Testing Startup Hypotheses
Customer Development - Identifying and Testing Startup HypothesesCustomer Development - Identifying and Testing Startup Hypotheses
Customer Development - Identifying and Testing Startup HypothesesHenrik Berglund
 
A3 slideshow
A3   slideshowA3   slideshow
A3 slideshowMSlagel
 
QA's lead role in agile transformations
QA's lead role in agile transformationsQA's lead role in agile transformations
QA's lead role in agile transformationsDave Ungar
 
Story Centered Curriculum
Story Centered CurriculumStory Centered Curriculum
Story Centered Curriculumjkmarlatt
 
Test Driven Product: Applying Test Driven Thinking to the Product World
Test Driven Product: Applying Test Driven Thinking to the Product WorldTest Driven Product: Applying Test Driven Thinking to the Product World
Test Driven Product: Applying Test Driven Thinking to the Product WorldCprime
 
Right Brains in Business
Right Brains in BusinessRight Brains in Business
Right Brains in BusinessBusiness901
 
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile Projects
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile ProjectsAgile Testing Days 2014 Keynote - Helping Testers Add Value on Agile Projects
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile ProjectsAlan Richardson
 
An Agile A to Z
An Agile A to ZAn Agile A to Z
An Agile A to ZJon Jagger
 
Interview Mastery - Unleash Candidate's True Competencies
Interview Mastery - Unleash Candidate's True CompetenciesInterview Mastery - Unleash Candidate's True Competencies
Interview Mastery - Unleash Candidate's True CompetenciesEkkapob Chitpanorak
 
Branding strategies for job opportunities
Branding strategies for job opportunitiesBranding strategies for job opportunities
Branding strategies for job opportunitiesSandeep Sharma
 
Avoid the “thud!” Or: How to deliver products people actually want
Avoid the “thud!” Or: How to deliver products people actually wantAvoid the “thud!” Or: How to deliver products people actually want
Avoid the “thud!” Or: How to deliver products people actually wantJenny Shirey
 
Bootstrapping a-devops-matter
Bootstrapping a-devops-matterBootstrapping a-devops-matter
Bootstrapping a-devops-matterSkills Matter
 
What made you a software testing leader?
What made you a software testing leader?What made you a software testing leader?
What made you a software testing leader?Rosie Sherry
 
Building for the Mobile Experience
Building for the Mobile ExperienceBuilding for the Mobile Experience
Building for the Mobile ExperienceJeff Eddings
 
Improv(e) Consulting: It's Not Just Funny Business
Improv(e) Consulting: It's Not Just Funny BusinessImprov(e) Consulting: It's Not Just Funny Business
Improv(e) Consulting: It's Not Just Funny BusinessMorgan Burton
 
Writing Better e-Learning Scripts #Training18
Writing Better e-Learning Scripts #Training18Writing Better e-Learning Scripts #Training18
Writing Better e-Learning Scripts #Training18Cammy Bean
 
Startup academy May '17 Deck
Startup academy May '17 DeckStartup academy May '17 Deck
Startup academy May '17 DeckLeon Pals
 

Similar a BDD - beyond: Given, When and Then (20)

TDD All the Things!
TDD All the Things!TDD All the Things!
TDD All the Things!
 
Coding the right thing
Coding the right thingCoding the right thing
Coding the right thing
 
Customer Development - Identifying and Testing Startup Hypotheses
Customer Development - Identifying and Testing Startup HypothesesCustomer Development - Identifying and Testing Startup Hypotheses
Customer Development - Identifying and Testing Startup Hypotheses
 
A3 slideshow
A3   slideshowA3   slideshow
A3 slideshow
 
QA's lead role in agile transformations
QA's lead role in agile transformationsQA's lead role in agile transformations
QA's lead role in agile transformations
 
Story Centered Curriculum
Story Centered CurriculumStory Centered Curriculum
Story Centered Curriculum
 
Test Driven Product: Applying Test Driven Thinking to the Product World
Test Driven Product: Applying Test Driven Thinking to the Product WorldTest Driven Product: Applying Test Driven Thinking to the Product World
Test Driven Product: Applying Test Driven Thinking to the Product World
 
Right Brains in Business
Right Brains in BusinessRight Brains in Business
Right Brains in Business
 
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile Projects
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile ProjectsAgile Testing Days 2014 Keynote - Helping Testers Add Value on Agile Projects
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile Projects
 
An Agile A to Z
An Agile A to ZAn Agile A to Z
An Agile A to Z
 
Interview Mastery - Unleash Candidate's True Competencies
Interview Mastery - Unleash Candidate's True CompetenciesInterview Mastery - Unleash Candidate's True Competencies
Interview Mastery - Unleash Candidate's True Competencies
 
Branding strategies for job opportunities
Branding strategies for job opportunitiesBranding strategies for job opportunities
Branding strategies for job opportunities
 
Avoid the “thud!” Or: How to deliver products people actually want
Avoid the “thud!” Or: How to deliver products people actually wantAvoid the “thud!” Or: How to deliver products people actually want
Avoid the “thud!” Or: How to deliver products people actually want
 
Bootstrapping a-devops-matter
Bootstrapping a-devops-matterBootstrapping a-devops-matter
Bootstrapping a-devops-matter
 
Using Stories to Engage Your Audience
Using Stories to Engage Your AudienceUsing Stories to Engage Your Audience
Using Stories to Engage Your Audience
 
What made you a software testing leader?
What made you a software testing leader?What made you a software testing leader?
What made you a software testing leader?
 
Building for the Mobile Experience
Building for the Mobile ExperienceBuilding for the Mobile Experience
Building for the Mobile Experience
 
Improv(e) Consulting: It's Not Just Funny Business
Improv(e) Consulting: It's Not Just Funny BusinessImprov(e) Consulting: It's Not Just Funny Business
Improv(e) Consulting: It's Not Just Funny Business
 
Writing Better e-Learning Scripts #Training18
Writing Better e-Learning Scripts #Training18Writing Better e-Learning Scripts #Training18
Writing Better e-Learning Scripts #Training18
 
Startup academy May '17 Deck
Startup academy May '17 DeckStartup academy May '17 Deck
Startup academy May '17 Deck
 

Más de RiverGlide

User Stories Re-explained - Antony Marcano
User Stories Re-explained - Antony MarcanoUser Stories Re-explained - Antony Marcano
User Stories Re-explained - Antony MarcanoRiverGlide
 
Transitioning from component teams to End-to-End Teams
Transitioning from component teams to End-to-End TeamsTransitioning from component teams to End-to-End Teams
Transitioning from component teams to End-to-End TeamsRiverGlide
 
Refactoring page objects The Screenplay Pattern
Refactoring page objects   The Screenplay Pattern Refactoring page objects   The Screenplay Pattern
Refactoring page objects The Screenplay Pattern RiverGlide
 
A journey beyond the page object pattern
A journey beyond the page object patternA journey beyond the page object pattern
A journey beyond the page object patternRiverGlide
 
Maintainable code
Maintainable codeMaintainable code
Maintainable codeRiverGlide
 

Más de RiverGlide (6)

User Stories Re-explained - Antony Marcano
User Stories Re-explained - Antony MarcanoUser Stories Re-explained - Antony Marcano
User Stories Re-explained - Antony Marcano
 
Transitioning from component teams to End-to-End Teams
Transitioning from component teams to End-to-End TeamsTransitioning from component teams to End-to-End Teams
Transitioning from component teams to End-to-End Teams
 
Refactoring page objects The Screenplay Pattern
Refactoring page objects   The Screenplay Pattern Refactoring page objects   The Screenplay Pattern
Refactoring page objects The Screenplay Pattern
 
Robot handles
Robot handlesRobot handles
Robot handles
 
A journey beyond the page object pattern
A journey beyond the page object patternA journey beyond the page object pattern
A journey beyond the page object pattern
 
Maintainable code
Maintainable codeMaintainable code
Maintainable code
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Último (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

BDD - beyond: Given, When and Then

  • 1. Behaviour Driven DevelopmentBeyond “Given, When, Then” Antony Marcano
  • 2. The Telephone Game http://www.brokenpicturetelephone.com/
  • 3. What is BDD? Beyond “Given, When, Then”
  • 4. BDD Origins ‘The deeper I got into TDD, the more I felt that my own journey had been less of a wax-on, wax-off process of gradual mastery than a series of blind alleys. I remember thinking “If only someone had told me that!”… I decided it must be possible to present TDD in a way that gets straight to the good stuff and avoids all the pitfalls. My response is behaviour-driven development (BDD). Over time, BDD has grown to encompass the wider picture of agile analysis and automated acceptance testing.’ -Dan North
  • 5. BDD Origins - Shortened “ Behaviour Driven Development (BDD) builds upon Test-Driven Development (TDD) by formalising the good habits of the best TDD practitioners. ” – The Cucumber Book, AslakHellesøy, Matt Wynne
  • 6. Some ‘Good Habits’ Slice Vertically Work from the outside-in One example at a time
  • 8. 2009 8 Traditionally, development is sliced horizontally Private albums Share photos Create album Login User Story C User Story B User Story D User Story A Software Components (modules/classes) Software Components (modules/classes) Iteration n Iteration x Iteration n+1… Sprint n Sprint x Sprint n+1… time time …but defers feedback (often, until it’s too late)
  • 9. 2009 9 Vertical slicing Private albums Share photos Create album Login Share photos Create album Share photos Software Components (modules/classes) Iteration n Iteration x Iteration n+1 time …results in earlier feedback
  • 10. Work from the outside-in
  • 12. One example at a time
  • 13. One example at a time
  • 14. Implement story driving with unit tests Scenario should pass Have a conversation For each Example illustrating the story Elaborate as an automated scenario (aka acceptance test) When all Scenarios pass, story is done (almost) One example at a time Test should fail
  • 15. Expressing Examples Given, When, Then And beyond
  • 16. Given When Then Given <some initial context> When <something happens> Then <some expectation>
  • 17. Given When Then Given <some initial context> [and some additional context] When <something happens> [and something else happens] Then <some expectation> [and some more expectations]
  • 18. A Typical Illustration Scenario: Login Successfully Given I am on the home-page When I enter the username ‘antony’ And I enter the password ‘p4$$w0rd’ And I click ‘login’ Then I should be logged in What’s wrong with this example?
  • 19. A Better Illustration Scenario: Login Successfully When I login as ‘antony’ with the password ‘p4$$w0rd’ Then I should be logged in Why is it better?
  • 20. Task Analysis A little UX for our BDD
  • 21. Pitching it right… Goals e.g. Withdraw Cash Tasks Identify to bank Request amount (inter)actions Insert Card Enter Pin Press “Withdraw Cash” Enter amount Press OK } Just right } Too low level
  • 22. For example… When Iadd, the number ‘2’ and the number ’3’ task } actions http://cukesalad.info
  • 23. Some nice side-effects Encourages description of UI interactions in one place Makes it easier to execute scenarios via different interfaces

Notas del editor

  1. Requirements are given to BA as examplesBA infers Abstract RulesDevelopers code Abstract Rules (they test by inferring examples from the rules)Testers use BA rules and the software to infer new examples (edge cases)
  2. At this point we should demonstrate so people can follow