SlideShare a Scribd company logo
1 of 83
Download to read offline
Stories from the trenches about how not to do BDD
Twelve BDD Antipatterns
John
Ferguson
Smart
Introductions
“I help teams of smart people 

learn to work together more efficiently, 

to deliver better software faster”
To deliver
software that
matters
And a common
language to build
a shared
understanding
Using examples at
multiple levels
Collaborate to
discover
requirements and
identify uncertainty
The essence of BDD
To deliver
software that
matters
And a common
language to build
a shared
understanding
Using examples at
multiple levels
Collaborate to
discover
requirements and
identify uncertainty
The essence of BDD
To deliver
software that
matters
And a common
language to build
a shared
understanding
Using examples at
multiple levels
Collaborate to
discover
requirements and
identify uncertainty
The essence of BDD
To deliver
software that
matters
And a common
language to build
a shared
understanding
Using examples at
multiple levels
Collaborate to
discover
requirements and
identify uncertainty
The essence of BDD
To deliver
software that
matters
And a common
language to build
a shared
understanding
Using examples at
multiple levels
Collaborate to
discover
requirements and
identify uncertainty
The essence of 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
How does it work?
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
How does it work?
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
How does it work?
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
How does it work?
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
How does it work?
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
How does it work?
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
How does it work?
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
How does it work?
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
How does it work?
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
How does it work?
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
How does it work?
How does it work?
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
How does it work?
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
How does it work?
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
How does it work?
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
How does it work?
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
How does it work?
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
FeedbackPitch
The three forms of balance
Timing
FeedbackPitch
The three forms of balance
Timing
FeedbackPitch
The three forms of balance
Timing
FeedbackPitch
The three forms of balance
Timing
FeedbackPitch
The three forms of balance
Timing
Timing
“Out to lunch”
Antipattern #1
“The Cucumber Salad”
Antipattern #2
“The Cucumber Salad”
Feature: Display customer details

As an user

I want to view the customer's personal profile

In order to access the personal information on the customer
Scenario: Customer Profile field 'Gender'

Given I am logged into the application

And I have displayed the customer

When I view the customer profile on the summary screen

Then I should see the Gender field (field type: Dropdown - read only information)



Scenario: Customer Profile ‘DOB/Age' field

Given I am logged into the application
And I have displayed the customer

When I view the Personal Profile on the Summary screen

Then I should see the DOB/Age field (DOB field type: Date, format: dd mmm yyyy -
read only) (Age field type:read only - numeric) under Personal Profile

And it should be blank if no value returned



Scenario: Customer Profile 'Marital Status' field

Scenario: Customer Profile 'Dependents' field
“Cucumber as a Test Tool”
Antipattern #3
Pitch
“Aimless requirements”
Antipattern #4
“Aimless requirements”
Feature: Display customer details

As a user
I want to view the customer's profile details

So that I can see the personal information on the customer
“Aimless requirements”
Feature: Display customer details

As a user
I want to view the customer's profile details

So that I can see the personal information on the customer
“Aimless requirements”
Feature: Display customer details

As a user
I want to view the customer's profile details

So that I can see the personal information on the customer
Feature: Locate a customer

In order to propose more relevant services to my customers

As a financial adviser

I want to view a customer's profile details
“Aimless requirements”
Feature: Display customer details

As a user
I want to view the customer's profile details

So that I can see the personal information on the customer
Feature: Locate a customer

In order to propose more relevant services to my customers

As a financial adviser

I want to view a customer's profile details
In order to propose more relevant services to my customers
What is the real
business goal?
“Aimless requirements”
Feature: Display customer details

As a user
I want to view the customer's profile details

So that I can see the personal information on the customer
Feature: Locate a customer

In order to propose more relevant services to my customers

As a financial adviser

I want to view a customer's profile details
As a financial adviser

What is the real
business goal?
What is the context of the
user who needs this feature?
“Aimless requirements”
Feature: Display customer details

As a user
I want to view the customer's profile details

So that I can see the personal information on the customer
Feature: Locate a customer

In order to propose more relevant services to my customers

As a financial adviser

I want to view a customer's profile details
What is the real
business goal?
What is the context of the
user who needs this feature?
“Aimless requirements”
Feature: Authenticate using social media

In order to access the application more easily

As a new user
I want to authenticate using social media instead of having to provide
a username and password
“Aimless requirements”
Feature: Authenticate using social media

In order to access the application more easily

As a new user
I want to authenticate using social media instead of having to provide
a username and password
Feature: Authenticate using social media

In order to access the application more easily

As a new user
I want to authenticate using social media instead of having to provide
a username and password
Scenario: Login via LinkedIn
Scenario: Login via Twitter
“Aimless requirements”
Feature: Authenticate using social media

In order to access the application more easily

As a new user
I want to authenticate using social media instead of having to provide
a username and password
Feature: Authenticate using social media

In order to access the application more easily

As a new user
I want to authenticate using social media instead of having to provide
a username and password
Scenario: Login via LinkedIn
Scenario: Login via Twitter
“Aimless requirements”
Feature: Authenticate using social media

In order to access the application more easily

As a new user
I want to authenticate using social media instead of having to provide
a username and password
Feature: Authenticate using social media

In order to access the application more easily

As a new user
I want to authenticate using social media instead of having to provide
a username and password
Scenario: Login via LinkedIn
Scenario: Login via Twitter
“Aimless requirements”
Feature: Authenticate using social media

In order to access the application more easily

As a new user
I want to authenticate using social media instead of having to provide
a username and password
Feature: Authenticate using social media

In order to access the application more easily

As a new user
I want to authenticate using social media instead of having to provide
a username and password
Scenario: Login via LinkedIn
Scenario: Login via Twitter
Scenario: Login via Facebook
“Aimless requirements”
Feature: Authenticate using social media

In order to access the application more easily

As a new user
I want to authenticate using social media instead of having to provide
a username and password
Feature: Authenticate using social media

In order to access the application more easily

As a new user
I want to authenticate using social media instead of having to provide
a username and password
Scenario: Login via LinkedIn
Scenario: Login via Twitter
Scenario: Login via Facebook
“Boring requirements”
Antipattern #5
“Boring scenarios”
Scenario Outline: User tries to log on to application with invalid credentials

Given I am a registered user
When I login as <username> with password <password>
Then I should not be allowed to logon
And I should see the error message <error-message>
Examples:
| username | password | message |
| scott | | Please enter a password |
| | tiger | Please enter a username |
| scott | wrong | Invalid username or password |
“Boring scenarios”
Scenario Outline: User tries to log on to application with invalid credentials

Given I am a registered user
When I login as <username> with password <password>
Then I should not be allowed to logon
And I should see the error message <error-message>
Examples:
| username | password | message |
| scott | | Please enter a password |
| | tiger | Please enter a username |
| scott | wrong | Invalid username or password |
UX concerns
“Boring scenarios”
Scenario Outline: User tries to log on to application with invalid credentials

Given I am a registered user
When I login as <username> with password <password>
Then I should not be allowed to logon
And I should see the error message <error-message>
Examples:
| username | password | message |
| scott | | Please enter a password |
| | tiger | Please enter a username |
| scott | wrong | Invalid username or password |
UX concerns
OK, but what else?
“Eyes on the screen”
Antipattern #6
“Eyes on the screen”
19
Scenario: User logs on to application

Given I am an authorised user
When I enter ‘scott’ into the username field
And I enter ‘tiger’ into the password field
And I click on ‘login’
Then the application home page should open
“Eyes on the screen”
19
Scenario: User logs on to application

Given I am an authorised user
When I enter ‘scott’ into the username field
And I enter ‘tiger’ into the password field
And I click on ‘login’
Then the application home page should open
Scenario: User logs on to application

Given I am an authorised user
When I login with a valid username and password
Then I should be provided access to my accounts
“Eyes on the screen”
19
Scenario: User logs on to application

Given I am an authorised user
When I enter ‘scott’ into the username field
And I enter ‘tiger’ into the password field
And I click on ‘login’
Then the application home page should open
Scenario: User logs on to application

Given I am an authorised user
When I login with a valid username and password
Then I should be provided access to my accounts
When I login with a valid username and password
“Eyes on the screen”
19
Scenario: User logs on to application

Given I am an authorised user
When I enter ‘scott’ into the username field
And I enter ‘tiger’ into the password field
And I click on ‘login’
Then the application home page should open
Scenario: User logs on to application

Given I am an authorised user
When I login with a valid username and password
Then I should be provided access to my accountsThen I should be provided access to my accounts
“Eyes on the screen”
19
Scenario: User logs on to application

Given I am an authorised user
When I enter ‘scott’ into the username field
And I enter ‘tiger’ into the password field
And I click on ‘login’
Then the application home page should open
Scenario: User logs on to application

Given I am an authorised user
When I login with a valid username and password
Then I should be provided access to my accounts
“Top-heavy scenarios”
Antipattern #7
“Not having all the cards”
Antipattern #8
“Not having all the cards”
22
Scenario: Find a customer by various criteria

Given I am logged into the application

When I click Search

Then I will see search criteria options to search for the customer
by customer name, date of birth, and account number
“Not having all the cards”
22
Scenario: Find a customer by various criteria

Given I am logged into the application

When I click Search

Then I will see search criteria options to search for the customer
by customer name, date of birth, and account number
“Not having all the cards”
22
Scenario: Find a customer by various criteria

Given I am logged into the application

When I click Search

Then I will see search criteria options to search for the customer
by customer name, date of birth, and account number
Scenario: Find a customer by name

Given the following customers exist:

| id | first name | last name |

| 100 | Sarah-Jane | Smith |

| 101 | Sarah | Smith |

When I search for a customer using the following search criteria:

| name | Sarah-Jane Smith |

Then I should display the following customer:
| id | first name | last name |

| 100 | Sarah-Jane | Smith |
“Not having all the cards”
22
Scenario: Find a customer by various criteria

Given I am logged into the application

When I click Search

Then I will see search criteria options to search for the customer
by customer name, date of birth, and account number
Scenario: Find a customer by name

Given the following customers exist:

| id | first name | last name |

| 100 | Sarah-Jane | Smith |

| 101 | Sarah | Smith |

When I search for a customer using the following search criteria:

| name | Sarah-Jane Smith |

Then I should display the following customer:
| id | first name | last name |

| 100 | Sarah-Jane | Smith |
Well-defined inputs
“Not having all the cards”
22
Scenario: Find a customer by various criteria

Given I am logged into the application

When I click Search

Then I will see search criteria options to search for the customer
by customer name, date of birth, and account number
Scenario: Find a customer by name

Given the following customers exist:

| id | first name | last name |

| 100 | Sarah-Jane | Smith |

| 101 | Sarah | Smith |

When I search for a customer using the following search criteria:

| name | Sarah-Jane Smith |

Then I should display the following customer:
| id | first name | last name |

| 100 | Sarah-Jane | Smith |
Well-defined inputs
Well-defined outcomes
“Scenario overload”
Antipattern #9
“Scenario overload”
24
Scenario: The account earns 4% interest when the balance is over $10000

Given a bonus saver account with a end-of-month balance of 12000

When interest is calculated

Then the monthly interest earned should be 40



Scenario: The account earns 2% interest when the balance is less than $10000

Given a bonus saver account with a end-of-month balance of 9000

When interest is calculated

Then the monthly interest earned should be 15



Scenario: The account earns 4% interest when the balance is over $10000 and no more than
$300 has been withdrawn

Given a bonus saver account with a end-of-month balance of 12000

And a previous end-of-month balance of $12300

When interest is calculated

Then the monthly interest earned should be 40



Scenario: The account earns 2% interest when the balance is over $10000 and more than
$300 has been withdrawn

Given a bonus saver account with a end-of-month balance of 12000

And a previous end-of-month balance of $12400

When interest is calculated

Then the monthly interest earned should be 15
“Scenario overload”
25
“Scenario overload”
25
Scenario Outline: Bonus saver account
Given a bonus saver account with an end-of-month balance of <balance>
And a previous end-of-month balance of <previous>
When the interest is calculated
Then the applicable interest rate should be <rate>
And <interest-earned> should be deposited into the account
Examples:
balance | previous | rate| earned| rule
10000 | 10000 | 4 | 33.33 |
9000 | 9000 | 2 | 15.00 | Under 10000 earns 2%
10000 | 10300 | 4 | 33.33 | Over 10000 earns 4%
9000 | 9301 | 1 | 7.5 | Under $10000 with over 300 withdrawn earns 1%
10000 | 10301 | 2 | 16.67 | Over $10000 with over $300 withdraw earns 2%
“Scenario overload”
26
“Scenario overload”
26
Scenario Outline: Bonus saver account
Given a bonus saver account with an end-of-month balance of <balance>
And a previous end-of-month balance of <previous-balance>
When the interest is calculated
Then the applicable interest rate should be <percentage-interest>
And <interest-earned> should be deposited into the account
Examples:
balance | previous-balance | percentage | earned |
10000 | 10000 | 4 | 33.33 |
10001 | 10000 | 4 | 33.34 |
1000 | 1000 | 2 | 1.67 |
9000 | 9000 | 2 | 15.00 |
10000 | 10300 | 4 | 33.33 |
20000 | 20000 | 4 | 100 |
10000 | 10301 | 2 | 16.67 |
9000 | 9301 | 1 | 7.5 |
20000 | 20301 | 1 | 50 |
100000 | 100301 | 1 | 250 |
“Cucumber test scripts”
Antipattern #10
“Cucumber test scripts”
28
“Cucumber test scripts”
29
“Tech-speak Scenarios”
Antipattern #11
“Techie Scenarios”
31
Scenario: Propose user branch when user logs in

Given I am an authorized staff member

When I log on using my valid credentials

Then the following branches should be available in the branch drop-down

| Branch name |

| George Street |

| Market Street |

| Liverpool Street |
Feedback
“Incommunicado scenarios”
Antipattern #12
“Incommunicado scenarios”
34
“Incommunicado scenarios”
35
“Incommunicado scenarios”
36
FeedbackPitch
So keep your balance!
Timing
Questions?
John Ferguson Smart
john.smart@wakaleo.com
wakaleo
http://www.wakaleo.com

More Related Content

What's hot

It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersJohn Ferguson Smart Limited
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentAdam Englander
 
How to successfully execute fixed price agile projects
How to successfully execute fixed price agile projectsHow to successfully execute fixed price agile projects
How to successfully execute fixed price agile projectsKaty Slemon
 
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Katy Slemon
 
Patterns of Automation: Simplify Your Test Code
Patterns of Automation: Simplify Your Test CodePatterns of Automation: Simplify Your Test Code
Patterns of Automation: Simplify Your Test CodeTechWell
 
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 UXJohn Patterson
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)Suman Guha
 
How to Find and Hire a Python_Django Development Company
How to Find and Hire a Python_Django Development CompanyHow to Find and Hire a Python_Django Development Company
How to Find and Hire a Python_Django Development CompanyYana Petlovana
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bddSeb Rose
 
Vs 1044 certified android apps developer brochure
Vs 1044 certified android apps developer brochureVs 1044 certified android apps developer brochure
Vs 1044 certified android apps developer brochureNarender Rana
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference SpeakerSven Peters
 
ENGL 227 Entire Course NEW
ENGL 227 Entire Course NEWENGL 227 Entire Course NEW
ENGL 227 Entire Course NEWshyamuopseven
 
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 RiolatSistemas
 
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 bddEduardo Riol
 
Process of hiring a php word press developer
Process of hiring a php word press developerProcess of hiring a php word press developer
Process of hiring a php word press developerKbizsoftDevelopers
 
eSoftHead Service Introduction
eSoftHead Service IntroductioneSoftHead Service Introduction
eSoftHead Service IntroductionNguyen Hai
 

What's hot (20)

BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
 
Help! My Legacy Application is Unmaintainable!
Help! My Legacy Application is Unmaintainable!Help! My Legacy Application is Unmaintainable!
Help! My Legacy Application is Unmaintainable!
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
How to successfully execute fixed price agile projects
How to successfully execute fixed price agile projectsHow to successfully execute fixed price agile projects
How to successfully execute fixed price agile projects
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
 
Patterns of Automation: Simplify Your Test Code
Patterns of Automation: Simplify Your Test CodePatterns of Automation: Simplify Your Test Code
Patterns of Automation: Simplify Your Test Code
 
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
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)
 
How to Find and Hire a Python_Django Development Company
How to Find and Hire a Python_Django Development CompanyHow to Find and Hire a Python_Django Development Company
How to Find and Hire a Python_Django Development Company
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bdd
 
Vs 1044 certified android apps developer brochure
Vs 1044 certified android apps developer brochureVs 1044 certified android apps developer brochure
Vs 1044 certified android apps developer brochure
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference Speaker
 
ENGL 227 Entire Course NEW
ENGL 227 Entire Course NEWENGL 227 Entire Course NEW
ENGL 227 Entire Course NEW
 
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
 
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
 
CV_Abhay_Pawar
CV_Abhay_PawarCV_Abhay_Pawar
CV_Abhay_Pawar
 
Process of hiring a php word press developer
Process of hiring a php word press developerProcess of hiring a php word press developer
Process of hiring a php word press developer
 
eSoftHead Service Introduction
eSoftHead Service IntroductioneSoftHead Service Introduction
eSoftHead Service Introduction
 

Similar to BDD Anti-patterns

Top Tips to a Successful eDiscovery Software Demo
Top Tips to a Successful eDiscovery Software DemoTop Tips to a Successful eDiscovery Software Demo
Top Tips to a Successful eDiscovery Software DemoMark Walker
 
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 EastmanQA or the Highway
 
How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopJim Plush
 
Business Analyst Training_Sagar
Business Analyst Training_SagarBusiness Analyst Training_Sagar
Business Analyst Training_SagarSagar Shajahan
 
Business analyst interview questions and answers
Business analyst interview questions and answersBusiness analyst interview questions and answers
Business analyst interview questions and answersRobin G
 
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)Synerzip
 
Behaviour driven development aka bdd
Behaviour driven development aka bddBehaviour driven development aka bdd
Behaviour driven development aka bddPrince Gupta
 
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 cucumberAlex Mikitenko
 
What is the Actual Use of Project Documents?
What is the Actual Use of Project Documents?What is the Actual Use of Project Documents?
What is the Actual Use of Project Documents?QATestLab
 
Business Analyst Training
Business  Analyst  TrainingBusiness  Analyst  Training
Business Analyst TrainingCraig Brown
 
Agile and the Business Analyst, Presentation to the IIBA, June 2010
Agile and the Business Analyst, Presentation to the IIBA, June 2010Agile and the Business Analyst, Presentation to the IIBA, June 2010
Agile and the Business Analyst, Presentation to the IIBA, June 2010bennw
 
Agile and the BA
Agile and the BAAgile and the BA
Agile and the BAreggie_d
 

Similar to BDD Anti-patterns (20)

Top Tips to a Successful eDiscovery Software Demo
Top Tips to a Successful eDiscovery Software DemoTop Tips to a Successful eDiscovery Software Demo
Top Tips to a Successful eDiscovery Software Demo
 
SRS.pdf
SRS.pdfSRS.pdf
SRS.pdf
 
Top Tips for eDiscovery Software Demo iControl ESI
Top Tips for eDiscovery Software Demo iControl ESITop Tips for eDiscovery Software Demo iControl ESI
Top Tips for eDiscovery Software Demo iControl ESI
 
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
 
SE-Lecture=3.pptx
SE-Lecture=3.pptxSE-Lecture=3.pptx
SE-Lecture=3.pptx
 
How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP Shop
 
Business Analyst Training_Sagar
Business Analyst Training_SagarBusiness Analyst Training_Sagar
Business Analyst Training_Sagar
 
Is Agile Better
Is Agile BetterIs Agile Better
Is Agile Better
 
Business analyst interview questions and answers
Business analyst interview questions and answersBusiness analyst interview questions and answers
Business analyst interview questions and answers
 
MOM on BA
MOM on BAMOM on BA
MOM on BA
 
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)
 
Faq
Faq  Faq
Faq
 
Behaviour driven development aka bdd
Behaviour driven development aka bddBehaviour driven development aka bdd
Behaviour driven development aka 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
 
What is the Actual Use of Project Documents?
What is the Actual Use of Project Documents?What is the Actual Use of Project Documents?
What is the Actual Use of Project Documents?
 
Business Analyst Training
Business  Analyst  TrainingBusiness  Analyst  Training
Business Analyst Training
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
Testers in an agile world
Testers in an agile worldTesters in an agile world
Testers in an agile world
 
Agile and the Business Analyst, Presentation to the IIBA, June 2010
Agile and the Business Analyst, Presentation to the IIBA, June 2010Agile and the Business Analyst, Presentation to the IIBA, June 2010
Agile and the Business Analyst, Presentation to the IIBA, June 2010
 
Agile and the BA
Agile and the BAAgile and the BA
Agile and the BA
 

More from John Ferguson Smart Limited

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 ScenariosJohn Ferguson Smart Limited
 
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 ...John Ferguson Smart Limited
 
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 differenceJohn Ferguson Smart Limited
 
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 ScreenplayJohn Ferguson Smart Limited
 
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 differenceJohn Ferguson Smart Limited
 
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...John Ferguson Smart Limited
 
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...John Ferguson Smart Limited
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingJohn Ferguson Smart Limited
 
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 practicesJohn Ferguson Smart Limited
 
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 applicationJohn Ferguson Smart Limited
 

More from John Ferguson Smart Limited (18)

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
 
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
 
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
 
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
 
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
 
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
 
BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!
 
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
 
Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 

Recently uploaded

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
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
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
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
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

BDD Anti-patterns

  • 1. Stories from the trenches about how not to do BDD Twelve BDD Antipatterns
  • 2. John Ferguson Smart Introductions “I help teams of smart people 
 learn to work together more efficiently, 
 to deliver better software faster”
  • 3. To deliver software that matters And a common language to build a shared understanding Using examples at multiple levels Collaborate to discover requirements and identify uncertainty The essence of BDD
  • 4. To deliver software that matters And a common language to build a shared understanding Using examples at multiple levels Collaborate to discover requirements and identify uncertainty The essence of BDD
  • 5. To deliver software that matters And a common language to build a shared understanding Using examples at multiple levels Collaborate to discover requirements and identify uncertainty The essence of BDD
  • 6. To deliver software that matters And a common language to build a shared understanding Using examples at multiple levels Collaborate to discover requirements and identify uncertainty The essence of BDD
  • 7. To deliver software that matters And a common language to build a shared understanding Using examples at multiple levels Collaborate to discover requirements and identify uncertainty The essence of BDD
  • 8. 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 How does it work?
  • 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 How does it work?
  • 10. 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 How does it work?
  • 11. 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 How does it work?
  • 12. 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 How does it work?
  • 13. 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 How does it work?
  • 14. 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 How does it work?
  • 15. 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 How does it work?
  • 16. 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 How does it work?
  • 17. 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 How does it work?
  • 18. 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 How does it work?
  • 19. How does it work? 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
  • 20. How does it work? 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
  • 21. How does it work? 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
  • 22. How does it work? 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
  • 23. How does it work? 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
  • 24. How does it work? 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
  • 25. FeedbackPitch The three forms of balance Timing
  • 26. FeedbackPitch The three forms of balance Timing
  • 27. FeedbackPitch The three forms of balance Timing
  • 28. FeedbackPitch The three forms of balance Timing
  • 29. FeedbackPitch The three forms of balance Timing
  • 33. “The Cucumber Salad” Feature: Display customer details
 As an user
 I want to view the customer's personal profile
 In order to access the personal information on the customer Scenario: Customer Profile field 'Gender'
 Given I am logged into the application
 And I have displayed the customer
 When I view the customer profile on the summary screen
 Then I should see the Gender field (field type: Dropdown - read only information)
 
 Scenario: Customer Profile ‘DOB/Age' field
 Given I am logged into the application And I have displayed the customer
 When I view the Personal Profile on the Summary screen
 Then I should see the DOB/Age field (DOB field type: Date, format: dd mmm yyyy - read only) (Age field type:read only - numeric) under Personal Profile
 And it should be blank if no value returned
 
 Scenario: Customer Profile 'Marital Status' field
 Scenario: Customer Profile 'Dependents' field
  • 34. “Cucumber as a Test Tool” Antipattern #3
  • 35. Pitch
  • 37. “Aimless requirements” Feature: Display customer details
 As a user I want to view the customer's profile details
 So that I can see the personal information on the customer
  • 38. “Aimless requirements” Feature: Display customer details
 As a user I want to view the customer's profile details
 So that I can see the personal information on the customer
  • 39. “Aimless requirements” Feature: Display customer details
 As a user I want to view the customer's profile details
 So that I can see the personal information on the customer Feature: Locate a customer
 In order to propose more relevant services to my customers
 As a financial adviser
 I want to view a customer's profile details
  • 40. “Aimless requirements” Feature: Display customer details
 As a user I want to view the customer's profile details
 So that I can see the personal information on the customer Feature: Locate a customer
 In order to propose more relevant services to my customers
 As a financial adviser
 I want to view a customer's profile details In order to propose more relevant services to my customers What is the real business goal?
  • 41. “Aimless requirements” Feature: Display customer details
 As a user I want to view the customer's profile details
 So that I can see the personal information on the customer Feature: Locate a customer
 In order to propose more relevant services to my customers
 As a financial adviser
 I want to view a customer's profile details As a financial adviser
 What is the real business goal? What is the context of the user who needs this feature?
  • 42. “Aimless requirements” Feature: Display customer details
 As a user I want to view the customer's profile details
 So that I can see the personal information on the customer Feature: Locate a customer
 In order to propose more relevant services to my customers
 As a financial adviser
 I want to view a customer's profile details What is the real business goal? What is the context of the user who needs this feature?
  • 43. “Aimless requirements” Feature: Authenticate using social media
 In order to access the application more easily
 As a new user I want to authenticate using social media instead of having to provide a username and password
  • 44. “Aimless requirements” Feature: Authenticate using social media
 In order to access the application more easily
 As a new user I want to authenticate using social media instead of having to provide a username and password Feature: Authenticate using social media
 In order to access the application more easily
 As a new user I want to authenticate using social media instead of having to provide a username and password Scenario: Login via LinkedIn Scenario: Login via Twitter
  • 45. “Aimless requirements” Feature: Authenticate using social media
 In order to access the application more easily
 As a new user I want to authenticate using social media instead of having to provide a username and password Feature: Authenticate using social media
 In order to access the application more easily
 As a new user I want to authenticate using social media instead of having to provide a username and password Scenario: Login via LinkedIn Scenario: Login via Twitter
  • 46. “Aimless requirements” Feature: Authenticate using social media
 In order to access the application more easily
 As a new user I want to authenticate using social media instead of having to provide a username and password Feature: Authenticate using social media
 In order to access the application more easily
 As a new user I want to authenticate using social media instead of having to provide a username and password Scenario: Login via LinkedIn Scenario: Login via Twitter
  • 47. “Aimless requirements” Feature: Authenticate using social media
 In order to access the application more easily
 As a new user I want to authenticate using social media instead of having to provide a username and password Feature: Authenticate using social media
 In order to access the application more easily
 As a new user I want to authenticate using social media instead of having to provide a username and password Scenario: Login via LinkedIn Scenario: Login via Twitter Scenario: Login via Facebook
  • 48. “Aimless requirements” Feature: Authenticate using social media
 In order to access the application more easily
 As a new user I want to authenticate using social media instead of having to provide a username and password Feature: Authenticate using social media
 In order to access the application more easily
 As a new user I want to authenticate using social media instead of having to provide a username and password Scenario: Login via LinkedIn Scenario: Login via Twitter Scenario: Login via Facebook
  • 50. “Boring scenarios” Scenario Outline: User tries to log on to application with invalid credentials
 Given I am a registered user When I login as <username> with password <password> Then I should not be allowed to logon And I should see the error message <error-message> Examples: | username | password | message | | scott | | Please enter a password | | | tiger | Please enter a username | | scott | wrong | Invalid username or password |
  • 51. “Boring scenarios” Scenario Outline: User tries to log on to application with invalid credentials
 Given I am a registered user When I login as <username> with password <password> Then I should not be allowed to logon And I should see the error message <error-message> Examples: | username | password | message | | scott | | Please enter a password | | | tiger | Please enter a username | | scott | wrong | Invalid username or password | UX concerns
  • 52. “Boring scenarios” Scenario Outline: User tries to log on to application with invalid credentials
 Given I am a registered user When I login as <username> with password <password> Then I should not be allowed to logon And I should see the error message <error-message> Examples: | username | password | message | | scott | | Please enter a password | | | tiger | Please enter a username | | scott | wrong | Invalid username or password | UX concerns OK, but what else?
  • 53. “Eyes on the screen” Antipattern #6
  • 54. “Eyes on the screen” 19 Scenario: User logs on to application
 Given I am an authorised user When I enter ‘scott’ into the username field And I enter ‘tiger’ into the password field And I click on ‘login’ Then the application home page should open
  • 55. “Eyes on the screen” 19 Scenario: User logs on to application
 Given I am an authorised user When I enter ‘scott’ into the username field And I enter ‘tiger’ into the password field And I click on ‘login’ Then the application home page should open Scenario: User logs on to application
 Given I am an authorised user When I login with a valid username and password Then I should be provided access to my accounts
  • 56. “Eyes on the screen” 19 Scenario: User logs on to application
 Given I am an authorised user When I enter ‘scott’ into the username field And I enter ‘tiger’ into the password field And I click on ‘login’ Then the application home page should open Scenario: User logs on to application
 Given I am an authorised user When I login with a valid username and password Then I should be provided access to my accounts When I login with a valid username and password
  • 57. “Eyes on the screen” 19 Scenario: User logs on to application
 Given I am an authorised user When I enter ‘scott’ into the username field And I enter ‘tiger’ into the password field And I click on ‘login’ Then the application home page should open Scenario: User logs on to application
 Given I am an authorised user When I login with a valid username and password Then I should be provided access to my accountsThen I should be provided access to my accounts
  • 58. “Eyes on the screen” 19 Scenario: User logs on to application
 Given I am an authorised user When I enter ‘scott’ into the username field And I enter ‘tiger’ into the password field And I click on ‘login’ Then the application home page should open Scenario: User logs on to application
 Given I am an authorised user When I login with a valid username and password Then I should be provided access to my accounts
  • 60. “Not having all the cards” Antipattern #8
  • 61. “Not having all the cards” 22 Scenario: Find a customer by various criteria
 Given I am logged into the application
 When I click Search
 Then I will see search criteria options to search for the customer by customer name, date of birth, and account number
  • 62. “Not having all the cards” 22 Scenario: Find a customer by various criteria
 Given I am logged into the application
 When I click Search
 Then I will see search criteria options to search for the customer by customer name, date of birth, and account number
  • 63. “Not having all the cards” 22 Scenario: Find a customer by various criteria
 Given I am logged into the application
 When I click Search
 Then I will see search criteria options to search for the customer by customer name, date of birth, and account number Scenario: Find a customer by name
 Given the following customers exist:
 | id | first name | last name |
 | 100 | Sarah-Jane | Smith |
 | 101 | Sarah | Smith |
 When I search for a customer using the following search criteria:
 | name | Sarah-Jane Smith |
 Then I should display the following customer: | id | first name | last name |
 | 100 | Sarah-Jane | Smith |
  • 64. “Not having all the cards” 22 Scenario: Find a customer by various criteria
 Given I am logged into the application
 When I click Search
 Then I will see search criteria options to search for the customer by customer name, date of birth, and account number Scenario: Find a customer by name
 Given the following customers exist:
 | id | first name | last name |
 | 100 | Sarah-Jane | Smith |
 | 101 | Sarah | Smith |
 When I search for a customer using the following search criteria:
 | name | Sarah-Jane Smith |
 Then I should display the following customer: | id | first name | last name |
 | 100 | Sarah-Jane | Smith | Well-defined inputs
  • 65. “Not having all the cards” 22 Scenario: Find a customer by various criteria
 Given I am logged into the application
 When I click Search
 Then I will see search criteria options to search for the customer by customer name, date of birth, and account number Scenario: Find a customer by name
 Given the following customers exist:
 | id | first name | last name |
 | 100 | Sarah-Jane | Smith |
 | 101 | Sarah | Smith |
 When I search for a customer using the following search criteria:
 | name | Sarah-Jane Smith |
 Then I should display the following customer: | id | first name | last name |
 | 100 | Sarah-Jane | Smith | Well-defined inputs Well-defined outcomes
  • 67. “Scenario overload” 24 Scenario: The account earns 4% interest when the balance is over $10000
 Given a bonus saver account with a end-of-month balance of 12000
 When interest is calculated
 Then the monthly interest earned should be 40
 
 Scenario: The account earns 2% interest when the balance is less than $10000
 Given a bonus saver account with a end-of-month balance of 9000
 When interest is calculated
 Then the monthly interest earned should be 15
 
 Scenario: The account earns 4% interest when the balance is over $10000 and no more than $300 has been withdrawn
 Given a bonus saver account with a end-of-month balance of 12000
 And a previous end-of-month balance of $12300
 When interest is calculated
 Then the monthly interest earned should be 40
 
 Scenario: The account earns 2% interest when the balance is over $10000 and more than $300 has been withdrawn
 Given a bonus saver account with a end-of-month balance of 12000
 And a previous end-of-month balance of $12400
 When interest is calculated
 Then the monthly interest earned should be 15
  • 69. “Scenario overload” 25 Scenario Outline: Bonus saver account Given a bonus saver account with an end-of-month balance of <balance> And a previous end-of-month balance of <previous> When the interest is calculated Then the applicable interest rate should be <rate> And <interest-earned> should be deposited into the account Examples: balance | previous | rate| earned| rule 10000 | 10000 | 4 | 33.33 | 9000 | 9000 | 2 | 15.00 | Under 10000 earns 2% 10000 | 10300 | 4 | 33.33 | Over 10000 earns 4% 9000 | 9301 | 1 | 7.5 | Under $10000 with over 300 withdrawn earns 1% 10000 | 10301 | 2 | 16.67 | Over $10000 with over $300 withdraw earns 2%
  • 71. “Scenario overload” 26 Scenario Outline: Bonus saver account Given a bonus saver account with an end-of-month balance of <balance> And a previous end-of-month balance of <previous-balance> When the interest is calculated Then the applicable interest rate should be <percentage-interest> And <interest-earned> should be deposited into the account Examples: balance | previous-balance | percentage | earned | 10000 | 10000 | 4 | 33.33 | 10001 | 10000 | 4 | 33.34 | 1000 | 1000 | 2 | 1.67 | 9000 | 9000 | 2 | 15.00 | 10000 | 10300 | 4 | 33.33 | 20000 | 20000 | 4 | 100 | 10000 | 10301 | 2 | 16.67 | 9000 | 9301 | 1 | 7.5 | 20000 | 20301 | 1 | 50 | 100000 | 100301 | 1 | 250 |
  • 76. “Techie Scenarios” 31 Scenario: Propose user branch when user logs in
 Given I am an authorized staff member
 When I log on using my valid credentials
 Then the following branches should be available in the branch drop-down
 | Branch name |
 | George Street |
 | Market Street |
 | Liverpool Street |
  • 82. FeedbackPitch So keep your balance! Timing