SlideShare a Scribd company logo
The BDD Way
Speculate1
Testers
Developers
Business
Illustrate2
Product Backlog,
Goals, Capabilities and Features
Formulate3
User Stories with acceptance criteria
Automate4
Implement
and verify
Developers
and Testers
Executable Specifications
Demonstrate5
Testers
Developers
Business
Passing Automated
Acceptance Tests
Validate6
Customers
or Users
Potentially shippable
product increment
Learning
and Feedback
Documentation
Automated
Tests
Business
Readable
Specification
Gherkin
3 Artefacts in 1
Documentation
Automated
Tests
Business
Readable
Specification
Gherkin
Heuristics for great “Reading
Specs”
Asserts the
behaviour,
doesn’t list
instructions to
the reader.
Uses domain
concepts and
language, not
technical
implementation.
Every reader
should easily
understand its
purpose and
dialogue.
When it fails,
you quickly
know why and
trust the
outcome.
Concise,
focused with no
unnecessary
verbiage.
Declarative,
not imperative
Business
behaviour,
not
implementati
on
Easy to
understand
Fails
purposefully
and
informatively
Essential and
concise, not
incidental and
verbose
A selection of our
favorites
Gherkin
Refactoring
Patterns
Distilling
Descripting
De-UI-ication
De-UI-ication
1. Identify the business intent
behind the clicks and selects
2. Group UI interactions into
business tasks
3. Replace references to the
user interface by descriptions of
the user’s intent
Descripting
1. Clarify vague or imprecise
checks
2. Articulate the real scenario
goals in the form of clear and
testable outcomes
3. Focus each scenario on a
single rule
Distilling
1. Remove irrelevant detail
2. Highlight the essential
information
3. Connect the outcomes directly to
the inputs and actions
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they navigate to the Tickets tab
And they click “New”
And they select “New Ticket”
And they fill in the mandatory fields
And they click on “Create”
Then check that the ticket is correctly displayed
And the ticket status dropdown should show “Open”
And then they click Logout
And the window closes
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they navigate to the Tickets tab
And they click “New”
And they select “New Ticket”
And they fill in the mandatory fields
And they click on “Create”
Then check that the ticket is correctly displayed
And the ticket status dropdown should show “Open”
And then they click Logout
And the window closes
De-UI-ication
1. Identify the business intent behind the clicks and selects
2. Group UI interactions into business tasks
3. Replace references to the user interface by descriptions of the user’s intent
Descripting
1. Clarify vague or imprecise checks
2. Articulate the real scenario goals in the form of clear and testable
outcomes
3. Focus each scenario on a single rule
Distilling
1. Remove irrelevant detail
2. Highlight the essential information
3. Connect the outcomes directly to the inputs and actions
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they navigate to the Tickets tab
And they click “New”
And they select “New Ticket”
And they fill in the mandatory fields
And they click on “Create”
Then check that the ticket is correctly displayed
And the ticket status dropdown should show “Open”
And then they click Logout
And the window closes
De-UI-ication
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they navigate to the Tickets tab
And they click “New”
And they select “New Ticket”
And they fill in the mandatory fields
And they click on “Create”
Then check that the ticket is correctly displayed
And the ticket status dropdown should show “Open”
And then they click Logout
And the window closes
De-UI-ication
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they create a new ticket with valid details
Then check that the ticket is correctly displayed
And the ticket status dropdown should show “Open”
And then they click Logout
And the window closes
De-UI-ication
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they create a new ticket with valid details
Then check that the ticket is correctly displayed
And the ticket status dropdown should show “Open”
And then they click Logout
And the window closes
De-UI-ication
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they create a new ticket with valid details
Then check that the ticket is correctly displayed
And the ticket should be “Open”
De-UI-ication
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they create a new ticket with valid details
Then check that the ticket is correctly displayed
And the ticket should be “Open”
Descripting
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they create a new ticket with valid details
Then check that the ticket is correctly displayed
And the ticket should be “Open”
Descripting
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they create a new ticket with valid details
Then a new ticket should be raised
And the ticket should be “Open”
Descripting
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they create a new ticket with valid details
Then a new ticket should be raised with status “Open”
Descripting
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they create a new ticket with valid details
Then a new ticket should be raised with status “Open”
Descripting
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given a User Logs in as “SupportUser123”
And a password of “Passw0rd”
And verify they are a Support User
When they create a new ticket with valid details
Then a new ticket should be raised with status “Open”
Descripting
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given Sasha the Support User logs in as “SupportUser123”
And a password of “Passw0rd”
When they create a new ticket with valid details
Then a new ticket should be raised with status “Open”
Descripting
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given Sasha the Support User logs in as “SupportUser123”
And a password of “Passw0rd”
When they create a new ticket with valid details
Then a new ticket should be raised with status “Open”
Distilling
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given Sasha the Support User logs in as “SupportUser123”
And a password of “Passw0rd”
When they create a new ticket with valid details
Then a new ticket should be raised with status “Open”
Distilling
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given Sasha the Support User is logged in
When they create a new ticket with valid details
Then a new ticket should be raised with status “Open”
Distilling
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given Sasha the Support User is logged in
When they create a new ticket with valid details
Then a new ticket should be raised with status “Open”
Distilling
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given Sasha makes a new ticket request with valid details
| User Name | Nature of Problem |
| Forgetful Fred | Account locked |
When she creates a new ticket
Then a new ticket should be raised with status “Open”
Distilling
Gherkin Refactoring in Action
Scenario: Creating a new help desk ticket
Given Sasha makes a new ticket request with valid details
| User Name | Nature of Problem |
| Forgetful Fred | Account locked |
When she creates a new ticket
Then a new ticket should be raised with status “Open”
Distilling
Feature: Expense Claims End to End Test
New expense claims should be created in the Submitted state and be appear in the "New
Claims" screen.
Scenario: Submitting an expense claim
Given I log in as: sam.user@db.com
And I click on the "My Expenses " tab
When I click on "New Claim"
And I enter the description ‘Hotel expenses’
And I enter "25-04-2019" in the Date field
And I enter "153587-ZX" in the Project Code
And I enter "53" in the Expense Category Code
And I upload a PDF receipt for the hotel
And I enter 3 in the nights field
And I enter $600 in the accommodation field
And I enter $120 in the food field
And I upload a PDF receipt for the taxi
And I enter $45 in the transport field
And I click on ‘Submit’
Then verify that the expense claim is created correctly with the correct totals
And verify that the appropriate users can see the new claim
And verify that the approver can see whether the claim exceeds daily thresholds
De-UI-ication
Descripting
Distilling
Feature: Submitting expense claims
Scenario: A valid expense claim needs a valid date, project code and positive amount
Given Tasha the Traveller submits a claim for the following expenses
| Expense Type | Expense Date | Project Code | Amount |
| Accommodation | 25-09-2019 | Apollo-57 | $600 |
| Food | 25-09-2019 | Apollo-57 | $120 |
| Transport | 25-09-2019 | Apollo-57 | $45 |
When Tasha submits the claim
Then it should be successfully submitted with a total of $765
And a it should have status of “submitted”
De-UI-ication
Descripting
Distilling
John Ferguson Smart
@wakaleo
johnfergusonsmart.com
Tom Roden
@tommroden
neuri.com
Our Reading Specs
Ad

More Related Content

Similar to My Reading Specs - Refactoring Patterns for Gherkin Scenarios (20)

Paper design final
Paper design finalPaper design final
Paper design final
Mathijs van Meerkerk
 
Paper design final
Paper design finalPaper design final
Paper design final
mir00
 
171846965 projects
171846965 projects171846965 projects
171846965 projects
homeworkping8
 
Write a banking program that simulates the operation of your local ba.docx
 Write a banking program that simulates the operation of your local ba.docx Write a banking program that simulates the operation of your local ba.docx
Write a banking program that simulates the operation of your local ba.docx
ajoy21
 
Income expense application in iOS
Income expense application in iOSIncome expense application in iOS
Income expense application in iOS
mayur patel
 
Order to cash_cycle_iii
Order to cash_cycle_iiiOrder to cash_cycle_iii
Order to cash_cycle_iii
satish Lingaraju
 
Order to cash_cycle_iii
Order to cash_cycle_iiiOrder to cash_cycle_iii
Order to cash_cycle_iii
G Madhusudhan
 
Accounting software
Accounting softwareAccounting software
Accounting software
Ajeet Singh Mandloi
 
Order to cash_cycle_iii
Order to cash_cycle_iiiOrder to cash_cycle_iii
Order to cash_cycle_iii
abhilashseelam
 
Social Gold In-Flash Payments Webinar
Social Gold In-Flash Payments WebinarSocial Gold In-Flash Payments Webinar
Social Gold In-Flash Payments Webinar
Social Gold
 
Social Gold in-Flash Webinar Jan 2010
Social Gold in-Flash Webinar Jan 2010Social Gold in-Flash Webinar Jan 2010
Social Gold in-Flash Webinar Jan 2010
Social Gold
 
Authorization objects a simple guide.doc (1)
Authorization objects   a simple guide.doc (1)Authorization objects   a simple guide.doc (1)
Authorization objects a simple guide.doc (1)
Vikram Polinati
 
Give1Get2 User's Guide English
Give1Get2 User's Guide EnglishGive1Get2 User's Guide English
Give1Get2 User's Guide English
Yann GEFFROTIN
 
Enabling agile devliery through enabling BDD in PHP projects
Enabling agile devliery through enabling BDD in PHP projectsEnabling agile devliery through enabling BDD in PHP projects
Enabling agile devliery through enabling BDD in PHP projects
Konstantin Kudryashov
 
Css eng r1
Css eng r1Css eng r1
Css eng r1
sbe37
 
java and javascript api dev guide
java and javascript api dev guidejava and javascript api dev guide
java and javascript api dev guide
Zenita Smythe
 
Guided Assistance
Guided Assistance Guided Assistance
Guided Assistance
SellOnFlipkart
 
Architecting Value Using an Intelligent Payments Platform
Architecting Value Using an Intelligent Payments PlatformArchitecting Value Using an Intelligent Payments Platform
Architecting Value Using an Intelligent Payments Platform
XTRMAccount
 
Vouchers
VouchersVouchers
Vouchers
Abhilash Warrier
 
POS Layaway by Amber
POS Layaway by AmberPOS Layaway by Amber
POS Layaway by Amber
rcountry
 
Paper design final
Paper design finalPaper design final
Paper design final
mir00
 
Write a banking program that simulates the operation of your local ba.docx
 Write a banking program that simulates the operation of your local ba.docx Write a banking program that simulates the operation of your local ba.docx
Write a banking program that simulates the operation of your local ba.docx
ajoy21
 
Income expense application in iOS
Income expense application in iOSIncome expense application in iOS
Income expense application in iOS
mayur patel
 
Order to cash_cycle_iii
Order to cash_cycle_iiiOrder to cash_cycle_iii
Order to cash_cycle_iii
G Madhusudhan
 
Order to cash_cycle_iii
Order to cash_cycle_iiiOrder to cash_cycle_iii
Order to cash_cycle_iii
abhilashseelam
 
Social Gold In-Flash Payments Webinar
Social Gold In-Flash Payments WebinarSocial Gold In-Flash Payments Webinar
Social Gold In-Flash Payments Webinar
Social Gold
 
Social Gold in-Flash Webinar Jan 2010
Social Gold in-Flash Webinar Jan 2010Social Gold in-Flash Webinar Jan 2010
Social Gold in-Flash Webinar Jan 2010
Social Gold
 
Authorization objects a simple guide.doc (1)
Authorization objects   a simple guide.doc (1)Authorization objects   a simple guide.doc (1)
Authorization objects a simple guide.doc (1)
Vikram Polinati
 
Give1Get2 User's Guide English
Give1Get2 User's Guide EnglishGive1Get2 User's Guide English
Give1Get2 User's Guide English
Yann GEFFROTIN
 
Enabling agile devliery through enabling BDD in PHP projects
Enabling agile devliery through enabling BDD in PHP projectsEnabling agile devliery through enabling BDD in PHP projects
Enabling agile devliery through enabling BDD in PHP projects
Konstantin Kudryashov
 
Css eng r1
Css eng r1Css eng r1
Css eng r1
sbe37
 
java and javascript api dev guide
java and javascript api dev guidejava and javascript api dev guide
java and javascript api dev guide
Zenita Smythe
 
Architecting Value Using an Intelligent Payments Platform
Architecting Value Using an Intelligent Payments PlatformArchitecting Value Using an Intelligent Payments Platform
Architecting Value Using an Intelligent Payments Platform
XTRMAccount
 
POS Layaway by Amber
POS Layaway by AmberPOS Layaway by Amber
POS Layaway by Amber
rcountry
 

More from John Ferguson Smart Limited (20)

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 difference
John Ferguson Smart Limited
 
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
John 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 Screenplay
John Ferguson Smart Limited
 
Feature Mapping Workshop
Feature Mapping WorkshopFeature Mapping Workshop
Feature Mapping Workshop
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
 
Shift left-devoxx-pl
Shift left-devoxx-plShift left-devoxx-pl
Shift left-devoxx-pl
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 testing
John Ferguson Smart Limited
 
Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
John 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 practices
John Ferguson Smart Limited
 
Serenity and the Journey Pattern
Serenity and the Journey PatternSerenity and the Journey Pattern
Serenity and the Journey Pattern
John Ferguson Smart Limited
 
BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
John Ferguson Smart Limited
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
John Ferguson Smart Limited
 
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
John Ferguson Smart Limited
 
BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014
John Ferguson Smart Limited
 
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
John Ferguson Smart Limited
 
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
John Ferguson Smart Limited
 
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
John 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 application
John Ferguson Smart Limited
 
TDD and BDD in Java 8 - what's in it for me?
TDD and BDD in Java 8 - what's in it for me?TDD and BDD in Java 8 - what's in it for me?
TDD and BDD in Java 8 - what's in it for me?
John 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 difference
John 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 Screenplay
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 testing
John 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 practices
John Ferguson Smart Limited
 
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
John Ferguson Smart Limited
 
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
John 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 application
John Ferguson Smart Limited
 
Ad

Recently uploaded (20)

How to Troubleshoot 9 Types of OutOfMemoryError
How to Troubleshoot 9 Types of OutOfMemoryErrorHow to Troubleshoot 9 Types of OutOfMemoryError
How to Troubleshoot 9 Types of OutOfMemoryError
Tier1 app
 
Why Tapitag Ranks Among the Best Digital Business Card Providers
Why Tapitag Ranks Among the Best Digital Business Card ProvidersWhy Tapitag Ranks Among the Best Digital Business Card Providers
Why Tapitag Ranks Among the Best Digital Business Card Providers
Tapitag
 
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdfProtect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
株式会社クライム
 
Download MathType Crack Version 2025???
Download MathType Crack  Version 2025???Download MathType Crack  Version 2025???
Download MathType Crack Version 2025???
Google
 
Time Estimation: Expert Tips & Proven Project Techniques
Time Estimation: Expert Tips & Proven Project TechniquesTime Estimation: Expert Tips & Proven Project Techniques
Time Estimation: Expert Tips & Proven Project Techniques
Livetecs LLC
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdfHow to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
victordsane
 
Meet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Meet the New Kid in the Sandbox - Integrating Visualization with PrometheusMeet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Meet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Eric D. Schabell
 
Robotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptxRobotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptx
julia smits
 
Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025
Phil Eaton
 
Adobe Media Encoder Crack FREE Download 2025
Adobe Media Encoder  Crack FREE Download 2025Adobe Media Encoder  Crack FREE Download 2025
Adobe Media Encoder Crack FREE Download 2025
zafranwaqar90
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
sequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineeringsequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineering
aashrithakondapalli8
 
Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025
GrapesTech Solutions
 
Autodesk Inventor Crack (2025) Latest
Autodesk Inventor    Crack (2025) LatestAutodesk Inventor    Crack (2025) Latest
Autodesk Inventor Crack (2025) Latest
Google
 
What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?
HireME
 
Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by AjathMobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Ajath Infotech Technologies LLC
 
A Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business StageA Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business Stage
SynapseIndia
 
Artificial hand using embedded system.pptx
Artificial hand using embedded system.pptxArtificial hand using embedded system.pptx
Artificial hand using embedded system.pptx
bhoomigowda12345
 
How to Troubleshoot 9 Types of OutOfMemoryError
How to Troubleshoot 9 Types of OutOfMemoryErrorHow to Troubleshoot 9 Types of OutOfMemoryError
How to Troubleshoot 9 Types of OutOfMemoryError
Tier1 app
 
Why Tapitag Ranks Among the Best Digital Business Card Providers
Why Tapitag Ranks Among the Best Digital Business Card ProvidersWhy Tapitag Ranks Among the Best Digital Business Card Providers
Why Tapitag Ranks Among the Best Digital Business Card Providers
Tapitag
 
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdfProtect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
Protect HPE VM Essentials using Veeam Agents-a50012338enw.pdf
株式会社クライム
 
Download MathType Crack Version 2025???
Download MathType Crack  Version 2025???Download MathType Crack  Version 2025???
Download MathType Crack Version 2025???
Google
 
Time Estimation: Expert Tips & Proven Project Techniques
Time Estimation: Expert Tips & Proven Project TechniquesTime Estimation: Expert Tips & Proven Project Techniques
Time Estimation: Expert Tips & Proven Project Techniques
Livetecs LLC
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdfHow to avoid IT Asset Management mistakes during implementation_PDF.pdf
How to avoid IT Asset Management mistakes during implementation_PDF.pdf
victordsane
 
Meet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Meet the New Kid in the Sandbox - Integrating Visualization with PrometheusMeet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Meet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Eric D. Schabell
 
Robotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptxRobotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptx
julia smits
 
Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025
Phil Eaton
 
Adobe Media Encoder Crack FREE Download 2025
Adobe Media Encoder  Crack FREE Download 2025Adobe Media Encoder  Crack FREE Download 2025
Adobe Media Encoder Crack FREE Download 2025
zafranwaqar90
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
sequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineeringsequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineering
aashrithakondapalli8
 
Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025
GrapesTech Solutions
 
Autodesk Inventor Crack (2025) Latest
Autodesk Inventor    Crack (2025) LatestAutodesk Inventor    Crack (2025) Latest
Autodesk Inventor Crack (2025) Latest
Google
 
What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?
HireME
 
Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by AjathMobile Application Developer Dubai | Custom App Solutions by Ajath
Mobile Application Developer Dubai | Custom App Solutions by Ajath
Ajath Infotech Technologies LLC
 
A Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business StageA Comprehensive Guide to CRM Software Benefits for Every Business Stage
A Comprehensive Guide to CRM Software Benefits for Every Business Stage
SynapseIndia
 
Artificial hand using embedded system.pptx
Artificial hand using embedded system.pptxArtificial hand using embedded system.pptx
Artificial hand using embedded system.pptx
bhoomigowda12345
 
Ad

My Reading Specs - Refactoring Patterns for Gherkin Scenarios

  • 1. The BDD Way Speculate1 Testers Developers Business Illustrate2 Product Backlog, Goals, Capabilities and Features Formulate3 User Stories with acceptance criteria Automate4 Implement and verify Developers and Testers Executable Specifications Demonstrate5 Testers Developers Business Passing Automated Acceptance Tests Validate6 Customers or Users Potentially shippable product increment Learning and Feedback Documentation Automated Tests Business Readable Specification Gherkin
  • 2. 3 Artefacts in 1 Documentation Automated Tests Business Readable Specification Gherkin
  • 3. Heuristics for great “Reading Specs” Asserts the behaviour, doesn’t list instructions to the reader. Uses domain concepts and language, not technical implementation. Every reader should easily understand its purpose and dialogue. When it fails, you quickly know why and trust the outcome. Concise, focused with no unnecessary verbiage. Declarative, not imperative Business behaviour, not implementati on Easy to understand Fails purposefully and informatively Essential and concise, not incidental and verbose
  • 4. A selection of our favorites Gherkin Refactoring Patterns
  • 6. De-UI-ication 1. Identify the business intent behind the clicks and selects 2. Group UI interactions into business tasks 3. Replace references to the user interface by descriptions of the user’s intent
  • 7. Descripting 1. Clarify vague or imprecise checks 2. Articulate the real scenario goals in the form of clear and testable outcomes 3. Focus each scenario on a single rule
  • 8. Distilling 1. Remove irrelevant detail 2. Highlight the essential information 3. Connect the outcomes directly to the inputs and actions
  • 9. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they navigate to the Tickets tab And they click “New” And they select “New Ticket” And they fill in the mandatory fields And they click on “Create” Then check that the ticket is correctly displayed And the ticket status dropdown should show “Open” And then they click Logout And the window closes
  • 10. Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they navigate to the Tickets tab And they click “New” And they select “New Ticket” And they fill in the mandatory fields And they click on “Create” Then check that the ticket is correctly displayed And the ticket status dropdown should show “Open” And then they click Logout And the window closes De-UI-ication 1. Identify the business intent behind the clicks and selects 2. Group UI interactions into business tasks 3. Replace references to the user interface by descriptions of the user’s intent Descripting 1. Clarify vague or imprecise checks 2. Articulate the real scenario goals in the form of clear and testable outcomes 3. Focus each scenario on a single rule Distilling 1. Remove irrelevant detail 2. Highlight the essential information 3. Connect the outcomes directly to the inputs and actions
  • 11. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they navigate to the Tickets tab And they click “New” And they select “New Ticket” And they fill in the mandatory fields And they click on “Create” Then check that the ticket is correctly displayed And the ticket status dropdown should show “Open” And then they click Logout And the window closes De-UI-ication
  • 12. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they navigate to the Tickets tab And they click “New” And they select “New Ticket” And they fill in the mandatory fields And they click on “Create” Then check that the ticket is correctly displayed And the ticket status dropdown should show “Open” And then they click Logout And the window closes De-UI-ication
  • 13. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they create a new ticket with valid details Then check that the ticket is correctly displayed And the ticket status dropdown should show “Open” And then they click Logout And the window closes De-UI-ication
  • 14. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they create a new ticket with valid details Then check that the ticket is correctly displayed And the ticket status dropdown should show “Open” And then they click Logout And the window closes De-UI-ication
  • 15. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they create a new ticket with valid details Then check that the ticket is correctly displayed And the ticket should be “Open” De-UI-ication
  • 16. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they create a new ticket with valid details Then check that the ticket is correctly displayed And the ticket should be “Open” Descripting
  • 17. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they create a new ticket with valid details Then check that the ticket is correctly displayed And the ticket should be “Open” Descripting
  • 18. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they create a new ticket with valid details Then a new ticket should be raised And the ticket should be “Open” Descripting
  • 19. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they create a new ticket with valid details Then a new ticket should be raised with status “Open” Descripting
  • 20. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they create a new ticket with valid details Then a new ticket should be raised with status “Open” Descripting
  • 21. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given a User Logs in as “SupportUser123” And a password of “Passw0rd” And verify they are a Support User When they create a new ticket with valid details Then a new ticket should be raised with status “Open” Descripting
  • 22. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given Sasha the Support User logs in as “SupportUser123” And a password of “Passw0rd” When they create a new ticket with valid details Then a new ticket should be raised with status “Open” Descripting
  • 23. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given Sasha the Support User logs in as “SupportUser123” And a password of “Passw0rd” When they create a new ticket with valid details Then a new ticket should be raised with status “Open” Distilling
  • 24. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given Sasha the Support User logs in as “SupportUser123” And a password of “Passw0rd” When they create a new ticket with valid details Then a new ticket should be raised with status “Open” Distilling
  • 25. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given Sasha the Support User is logged in When they create a new ticket with valid details Then a new ticket should be raised with status “Open” Distilling
  • 26. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given Sasha the Support User is logged in When they create a new ticket with valid details Then a new ticket should be raised with status “Open” Distilling
  • 27. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given Sasha makes a new ticket request with valid details | User Name | Nature of Problem | | Forgetful Fred | Account locked | When she creates a new ticket Then a new ticket should be raised with status “Open” Distilling
  • 28. Gherkin Refactoring in Action Scenario: Creating a new help desk ticket Given Sasha makes a new ticket request with valid details | User Name | Nature of Problem | | Forgetful Fred | Account locked | When she creates a new ticket Then a new ticket should be raised with status “Open” Distilling
  • 29. Feature: Expense Claims End to End Test New expense claims should be created in the Submitted state and be appear in the "New Claims" screen. Scenario: Submitting an expense claim Given I log in as: sam.user@db.com And I click on the "My Expenses " tab When I click on "New Claim" And I enter the description ‘Hotel expenses’ And I enter "25-04-2019" in the Date field And I enter "153587-ZX" in the Project Code And I enter "53" in the Expense Category Code And I upload a PDF receipt for the hotel And I enter 3 in the nights field And I enter $600 in the accommodation field And I enter $120 in the food field And I upload a PDF receipt for the taxi And I enter $45 in the transport field And I click on ‘Submit’ Then verify that the expense claim is created correctly with the correct totals And verify that the appropriate users can see the new claim And verify that the approver can see whether the claim exceeds daily thresholds De-UI-ication Descripting Distilling
  • 30. Feature: Submitting expense claims Scenario: A valid expense claim needs a valid date, project code and positive amount Given Tasha the Traveller submits a claim for the following expenses | Expense Type | Expense Date | Project Code | Amount | | Accommodation | 25-09-2019 | Apollo-57 | $600 | | Food | 25-09-2019 | Apollo-57 | $120 | | Transport | 25-09-2019 | Apollo-57 | $45 | When Tasha submits the claim Then it should be successfully submitted with a total of $765 And a it should have status of “submitted” De-UI-ication Descripting Distilling
  • 31. John Ferguson Smart @wakaleo johnfergusonsmart.com Tom Roden @tommroden neuri.com Our Reading Specs

Editor's Notes

  • #2: Effectiveness: To apply the minimal effort necessary to achieve the desired result Autonomous kindergarteners and Lord of the Flies - Is effectiveness alone enough to make a high performance team?
  • #3: Effectiveness: To apply the minimal effort necessary to achieve the desired result Autonomous kindergarteners and Lord of the Flies - Is effectiveness alone enough to make a high performance team?
  翻译: