SlideShare a Scribd company logo
Behaviour Driven Development
“It’s Testing, Jim, but not as we know it!”
John Ferguson Smart
Consultant
Trainer
Mentor
Author
Speaker
Coder
WelcomeWelcome
John Ferguson Smart
Consultant
Trainer
Mentor
Author
Speaker
Coder
Behaviour Driven Development
You keep using that term
I do not think it means what you think it means
You may have heard of it
A test automation tool?
Behaviour Driven Development
You may have heard of it
A different way to write user stories?
Behaviour Driven Development
Feature: Search by keyword

In order for buyers to find what they are looking for more efficiently

As a seller

I want buyers to be able to search for articles by keywords



Scenario: Search for articles by keyword

Given I want to buy a wool scarf

When I search for 'wool'

Then I should see only articles related to 'wool'



Scenario: Search by shop name

Given I want to see articles from a particular shop

When I search by shop for 'docksmith'

Then I should find 1 shop called 'docksmith'
You may have heard of it
Behaviour Driven Development
A way to collaborate better?
You may have heard of it
Behaviour Driven Development
a shared understanding
software that matters
Using examples
You may have heard of it
Behaviour Driven Development
Hunting out value
Automated Acceptance
Criteria
API and code design
boration
Building the software right
Building the right software
Living Documentation
BDD
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
A traditional development process
BDD in a nutshell
The business owner
and the business
analyst have a
conversation about
what he needs.
1
2
3
4 The tester uses
these scenarios
as the basis for
her tests
5
The automated tests provide
feedback on progress and help
document the application
The business analyst,
the developer and the
tester elaborate the
requirements together.
The scenarios guide the
developer and act as
automated tests
They define
requirements as
structured, English-
language format
"scenarios"
A BDD development process
BDD in a nutshellBDD in a nutshellBDD in a nutshell
The business owner
and the business
analyst have a
conversation about
what he needs.
1
2
3
4 The tester uses
these scenarios
as the basis for
her tests
5
The automated tests provide
feedback on progress and help
document the application
The business analyst,
the developer and the
tester elaborate the
requirements together.
The scenarios guide the
developer and act as
automated tests
They define
requirements as
structured, English-
language format
"scenarios"
• Specifications are elaborated collaboratively
• Specifications use a common language
• Executable specifications provide fast
BDD in a nutshellBDD in a nutshell
BDD in a nutshellBDD is about collaboration
“Having	
  the	
  conversa/on	
  	
  
is	
  more	
  important	
  than	
  	
  
recording	
  the	
  conversa/on	
  
is	
  more	
  important	
  than	
  	
  
automa/ng	
  the	
  conversa/on”	
  
-­‐	
  Liz	
  Keogh
BDD in a nutshellBDD is about collaboration
Story
bug reports
Working
code boring
manual
testing
WASTE
BA
Developer
Tester
Many teams build features like this…
BDD in a nutshellBDD is about collaboration
Working code
and
Working Automated
Acceptance Tests
Exploratory testing,
usability testing...
Shared
understanding
Story
Examples
Automated
acceptance
criteria
BDD teams focus on building a shared understanding
BDD in a nutshellBDD is about collaboration
BDD teams focus on building a shared understanding
BDD in a nutshellA typical BDD workflow
BDD in a nutshellA typical BDD workflow
Frequent Flyer Application
Goal: Encourage travellers to fly with Flying High airlines more often by allowing them to cumulate
Frequent Flyer points that they can spend on cheaper flights.
Goals
Earning points
from flights
Capabilities
Earning points
from spending
with partners
Viewing points
earned
Spending
points on
bookings
FeaturesViewing current points balance
View points needed to achieve
the next status level
Calculating points needed for
a given destination
BDD in a nutshellA typical BDD workflow
Calculating points needed for a given destination
As a traveller
I want to know how many points I need to go to a given destination
So that I can plan my next trip with Flying High Airlines
Feature
Acceptance Criteria
- Need 2 points per km
- Members can calculate points needed on their account home page
Acceptance
Criteria
Automated
Acceptance
Criteria
BDD in a nutshellA typical BDD workflow
Automated
Acceptance
Criteria
Automated
Acceptance
Tests
BDD in a nutshellA typical BDD workflow
Automated
Acceptance
Tests
Application Code
Low level specifications
BDD in a nutshellBDD Living Documentation
Meaningful feedback on what requirements
have (and have not) been delivered
What about the reports?
BDD in a nutshellBDD Living Documentation
Descriptions of each feature with an example
of how it behaves
What about the reports?
BDD in a nutshellBDD Living Documentation
What about the reports?
…complete with illustrations
BDD in a nutshellBDD Living Documentation
What about the reports?
Verify how each feature was tested
BDD in a nutshellBDD Living Documentation
What about the reports?
… and document releases
BDD Adoption Challenges
“There might be more to this than we thought”
BDD in a nutshell5 BDD Adoption Gotchas
1
2
3
4
The business analyst writes the scenarios and
then gives them to the other team members.
1) “I did it my way”
BDD in a nutshell5 BDD Adoption Gotchas
1
2
3
4
The tester writes the scenarios at the end to
implement an automated test suite.
2) “The Tester’s Tool”
BDD in a nutshell5 BDD Adoption Gotchas
1
2
3
4
5
The “Three Amigos” sessions don’t result in
usable scenarios, so the developer invents them
3) “The 3 amigos coffee club”
BDD in a nutshell5 BDD Adoption Gotchas
1
2
3
4
5
The scenarios are too UI-centric or detail-focused,
and neglect to express the core business value.
4) “The forest and the trees”
BDD in a nutshell5 BDD Adoption Gotchas
5) “The BDD Test Scribe”
1
2
3
4
The automated tester does not collaborate with the
developers, resulting in slow and fragile acceptance tests
BDD in a nutshell5 BDD Tips for Testers
1) Team up with the developers
BDD in a nutshell5 BDD Tips for Testers
Business Rules
Business Flow
Page/Component
interactions
Page/Component
details
2) Use layers
BDD in a nutshell5 BDD Tips for Testers
3)Prefer non-UI tests where possible
BDD in a nutshell5 BDD Tips for Testers
4) Treat your test code like production code
BDD in a nutshell5 BDD Tips for Testers
5) Know when not to automate
This slide is left intentionally blank
3 BDD Tester Wins
Deeper participation in feature delivery
3 BDD Tester Wins
Higher quality automated tests
3 BDD Tester Wins
More time for high-quality manual testing
Any questions?
“It’s Testing, Jim, but not as we know it!”
John Ferguson Smart
Consultant
Trainer
Mentor
Author
Speaker
Coder
WelcomeWelcome
John Ferguson Smart
Consultant
Trainer
Mentor
Author
Speaker
Coder

More Related Content

What's hot

Authentication in Node.js
Authentication in Node.jsAuthentication in Node.js
Authentication in Node.js
Jason Pearson
 

What's hot (18)

BDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityBDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and Serenity
 
BDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right SoftwareBDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right Software
 
Its testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxxIts testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxx
 
Help! My Legacy Application is Unmaintainable!
Help! My Legacy Application is Unmaintainable!Help! My Legacy Application is Unmaintainable!
Help! My Legacy Application is Unmaintainable!
 
BDD in Action - building software that matters
BDD in Action - building software that mattersBDD in Action - building software that matters
BDD in Action - building software that matters
 
My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin Scenarios
 
BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
 
Myths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentMyths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven Development
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
7 egb eess
7 egb eess7 egb eess
7 egb eess
 
Bdd using Cucumber
Bdd using CucumberBdd using Cucumber
Bdd using Cucumber
 
BDD - Keep love alive
BDD - Keep love aliveBDD - Keep love alive
BDD - Keep love alive
 
Certified HTML5 Developer
Certified HTML5 DeveloperCertified HTML5 Developer
Certified HTML5 Developer
 
HTML5 developer Certification
HTML5 developer CertificationHTML5 developer Certification
HTML5 developer Certification
 
Authentication in Node.js
Authentication in Node.jsAuthentication in Node.js
Authentication in Node.js
 
Expo qa from user stories to automated acceptance tests with bdd
Expo qa   from user stories to automated acceptance tests with bddExpo qa   from user stories to automated acceptance tests with bdd
Expo qa from user stories to automated acceptance tests with bdd
 
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo RiolWebinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
 

Viewers also liked

BDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world application
John Ferguson Smart Limited
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testing
dversaci
 

Viewers also liked (9)

Double Loop: TDD & BDD Done Right!
Double Loop: TDD & BDD Done Right!Double Loop: TDD & BDD Done Right!
Double Loop: TDD & BDD Done Right!
 
BDD in Automation Testing
BDD in Automation TestingBDD in Automation Testing
BDD in Automation Testing
 
CukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning WorkshopCukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning Workshop
 
Serenity and the Journey Pattern
Serenity and the Journey PatternSerenity and the Journey Pattern
Serenity and the Journey Pattern
 
Building a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / SpringBuilding a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / Spring
 
BDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world application
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testing
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practices
 
Agile Testing by Example
Agile Testing by ExampleAgile Testing by Example
Agile Testing by Example
 

Similar to It's Testing, Jim, but not as we know it - BDD for Testers

Similar to It's Testing, Jim, but not as we know it - BDD for Testers (20)

Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
 
Design your tests to behave - An introduction To BDD!
Design your tests to behave - An introduction To BDD!Design your tests to behave - An introduction To BDD!
Design your tests to behave - An introduction To BDD!
 
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019
 
Agile software requirements management with Impact Mapping and BDD
Agile software requirements management with Impact Mapping and BDDAgile software requirements management with Impact Mapping and BDD
Agile software requirements management with Impact Mapping and BDD
 
Testing stage. being ahead business with cucumber
Testing stage. being ahead business with cucumberTesting stage. being ahead business with cucumber
Testing stage. being ahead business with cucumber
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UXBehaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
 
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
 
Is Agile Better
Is Agile BetterIs Agile Better
Is Agile Better
 
Predictive Models for Production Apps with Yhat
Predictive Models for Production Apps with YhatPredictive Models for Production Apps with Yhat
Predictive Models for Production Apps with Yhat
 
Moving to tdd bdd
Moving to tdd bddMoving to tdd bdd
Moving to tdd bdd
 
Behaviour driven development aka bdd
Behaviour driven development aka bddBehaviour driven development aka bdd
Behaviour driven development aka bdd
 
Business driven development
Business driven developmentBusiness driven development
Business driven development
 
Behat - human-readable automated testing
Behat - human-readable automated testingBehat - human-readable automated testing
Behat - human-readable automated testing
 
Scrum + bdd + ddd
Scrum + bdd + dddScrum + bdd + ddd
Scrum + bdd + ddd
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
The Keys to Code Review in 2018 | A SmartBear Webinar
The Keys to Code Review in 2018 | A SmartBear WebinarThe Keys to Code Review in 2018 | A SmartBear Webinar
The Keys to Code Review in 2018 | A SmartBear Webinar
 
Business analysis
Business analysisBusiness analysis
Business analysis
 
Business value through requirements
Business value through requirementsBusiness value through requirements
Business value through requirements
 

More from John Ferguson Smart Limited

More from John Ferguson Smart Limited (11)

Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANTBE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
 
Sustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and ScreenplaySustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and Screenplay
 
Feature Mapping Workshop
Feature Mapping WorkshopFeature Mapping Workshop
Feature Mapping Workshop
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Shift left-devoxx-pl
Shift left-devoxx-plShift left-devoxx-pl
Shift left-devoxx-pl
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testing
 
Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
 
Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Buy Epson EcoTank L3210 Colour Printer Online.pptx
Buy Epson EcoTank L3210 Colour Printer Online.pptxBuy Epson EcoTank L3210 Colour Printer Online.pptx
Buy Epson EcoTank L3210 Colour Printer Online.pptx
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 

It's Testing, Jim, but not as we know it - BDD for Testers

  • 1. Behaviour Driven Development “It’s Testing, Jim, but not as we know it!”
  • 2. John Ferguson Smart Consultant Trainer Mentor Author Speaker Coder WelcomeWelcome John Ferguson Smart Consultant Trainer Mentor Author Speaker Coder
  • 3. Behaviour Driven Development You keep using that term I do not think it means what you think it means
  • 4. You may have heard of it A test automation tool? Behaviour Driven Development
  • 5. You may have heard of it A different way to write user stories? Behaviour Driven Development Feature: Search by keyword
 In order for buyers to find what they are looking for more efficiently
 As a seller
 I want buyers to be able to search for articles by keywords
 
 Scenario: Search for articles by keyword
 Given I want to buy a wool scarf
 When I search for 'wool'
 Then I should see only articles related to 'wool'
 
 Scenario: Search by shop name
 Given I want to see articles from a particular shop
 When I search by shop for 'docksmith'
 Then I should find 1 shop called 'docksmith'
  • 6. You may have heard of it Behaviour Driven Development A way to collaborate better?
  • 7. You may have heard of it Behaviour Driven Development a shared understanding software that matters Using examples
  • 8. You may have heard of it Behaviour Driven Development Hunting out value Automated Acceptance Criteria API and code design boration Building the software right Building the right software Living Documentation BDD
  • 9. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation A traditional development process BDD in a nutshell
  • 10. The business owner and the business analyst have a conversation about what he needs. 1 2 3 4 The tester uses these scenarios as the basis for her tests 5 The automated tests provide feedback on progress and help document the application The business analyst, the developer and the tester elaborate the requirements together. The scenarios guide the developer and act as automated tests They define requirements as structured, English- language format "scenarios" A BDD development process BDD in a nutshellBDD in a nutshellBDD in a nutshell
  • 11. The business owner and the business analyst have a conversation about what he needs. 1 2 3 4 The tester uses these scenarios as the basis for her tests 5 The automated tests provide feedback on progress and help document the application The business analyst, the developer and the tester elaborate the requirements together. The scenarios guide the developer and act as automated tests They define requirements as structured, English- language format "scenarios" • Specifications are elaborated collaboratively • Specifications use a common language • Executable specifications provide fast BDD in a nutshellBDD in a nutshell
  • 12. BDD in a nutshellBDD is about collaboration “Having  the  conversa/on     is  more  important  than     recording  the  conversa/on   is  more  important  than     automa/ng  the  conversa/on”   -­‐  Liz  Keogh
  • 13. BDD in a nutshellBDD is about collaboration Story bug reports Working code boring manual testing WASTE BA Developer Tester Many teams build features like this…
  • 14. BDD in a nutshellBDD is about collaboration Working code and Working Automated Acceptance Tests Exploratory testing, usability testing... Shared understanding Story Examples Automated acceptance criteria BDD teams focus on building a shared understanding
  • 15. BDD in a nutshellBDD is about collaboration BDD teams focus on building a shared understanding
  • 16. BDD in a nutshellA typical BDD workflow
  • 17. BDD in a nutshellA typical BDD workflow Frequent Flyer Application Goal: Encourage travellers to fly with Flying High airlines more often by allowing them to cumulate Frequent Flyer points that they can spend on cheaper flights. Goals Earning points from flights Capabilities Earning points from spending with partners Viewing points earned Spending points on bookings FeaturesViewing current points balance View points needed to achieve the next status level Calculating points needed for a given destination
  • 18. BDD in a nutshellA typical BDD workflow Calculating points needed for a given destination As a traveller I want to know how many points I need to go to a given destination So that I can plan my next trip with Flying High Airlines Feature Acceptance Criteria - Need 2 points per km - Members can calculate points needed on their account home page Acceptance Criteria Automated Acceptance Criteria
  • 19. BDD in a nutshellA typical BDD workflow Automated Acceptance Criteria Automated Acceptance Tests
  • 20. BDD in a nutshellA typical BDD workflow Automated Acceptance Tests Application Code Low level specifications
  • 21. BDD in a nutshellBDD Living Documentation Meaningful feedback on what requirements have (and have not) been delivered What about the reports?
  • 22. BDD in a nutshellBDD Living Documentation Descriptions of each feature with an example of how it behaves What about the reports?
  • 23. BDD in a nutshellBDD Living Documentation What about the reports? …complete with illustrations
  • 24. BDD in a nutshellBDD Living Documentation What about the reports? Verify how each feature was tested
  • 25. BDD in a nutshellBDD Living Documentation What about the reports? … and document releases
  • 26. BDD Adoption Challenges “There might be more to this than we thought”
  • 27. BDD in a nutshell5 BDD Adoption Gotchas 1 2 3 4 The business analyst writes the scenarios and then gives them to the other team members. 1) “I did it my way”
  • 28. BDD in a nutshell5 BDD Adoption Gotchas 1 2 3 4 The tester writes the scenarios at the end to implement an automated test suite. 2) “The Tester’s Tool”
  • 29. BDD in a nutshell5 BDD Adoption Gotchas 1 2 3 4 5 The “Three Amigos” sessions don’t result in usable scenarios, so the developer invents them 3) “The 3 amigos coffee club”
  • 30. BDD in a nutshell5 BDD Adoption Gotchas 1 2 3 4 5 The scenarios are too UI-centric or detail-focused, and neglect to express the core business value. 4) “The forest and the trees”
  • 31. BDD in a nutshell5 BDD Adoption Gotchas 5) “The BDD Test Scribe” 1 2 3 4 The automated tester does not collaborate with the developers, resulting in slow and fragile acceptance tests
  • 32. BDD in a nutshell5 BDD Tips for Testers 1) Team up with the developers
  • 33. BDD in a nutshell5 BDD Tips for Testers Business Rules Business Flow Page/Component interactions Page/Component details 2) Use layers
  • 34. BDD in a nutshell5 BDD Tips for Testers 3)Prefer non-UI tests where possible
  • 35. BDD in a nutshell5 BDD Tips for Testers 4) Treat your test code like production code
  • 36. BDD in a nutshell5 BDD Tips for Testers 5) Know when not to automate This slide is left intentionally blank
  • 37. 3 BDD Tester Wins Deeper participation in feature delivery
  • 38. 3 BDD Tester Wins Higher quality automated tests
  • 39. 3 BDD Tester Wins More time for high-quality manual testing
  • 40. Any questions? “It’s Testing, Jim, but not as we know it!”
  • 41. John Ferguson Smart Consultant Trainer Mentor Author Speaker Coder WelcomeWelcome John Ferguson Smart Consultant Trainer Mentor Author Speaker Coder