SlideShare a Scribd company logo
Requirements Delivery – 

Using Examples
About Us
Bharti Rupani
@bhartir24
brupani@enterprise-knowledge.com
https://www.linkedin.com/in/bhartir
Wyn Van Devanter
@wynv
wyn.vandevanter@excella.com
https://www.linkedin.com/in/wyntuition
http://www.slideshare.net/wynvandevanter
Terminology
• Specification by Example
• Executable Specifications
• Automated Acceptance Tests (AAT)
• Behavior Driven Development (BDD)
• Acceptance Test Driven Development
(ATDD)
• Testable Requirements
“Specifications
by examples
are acceptance
tests”
- Gajko Adzic
Testable Requirements
• User Journeys
• Deliver business value
• Clear examples
• Executable
Why should you care?
• Clearly communicate the specifications
• No functional gaps
• Verify business rules
• Build the right thing
6
Building Quality
Plan Collaborate Deliver
Build the right
thing
Build the thing
right
Developing Examples
Collaboration
Prioritized
Backlog
Business Goals User
Journey
User Story
2
Acceptance
Criteria 1
Example 1
User Story
1
Acceptance
Criteria 1
Example 1
Acceptance
Criteria 2
Example 1
Collaborate How do I
code this
feature?What are
the details
of this
feature?
How do I
validate
that this
work is
done?
Three Amigos
• Business Analyst, Developers and Testers
• Collaborate
• Share knowledge
• Think about the desired outcome
• Shared understanding
User Journey
You are a Business Analyst that is looking for a
conference to attend.
Example of using an Example
Attend BA
Conference
View Results
Region Date
View
DCBADD
Details
View
information
about IIBADC
View speaker
profiles
View Cost
Select
DCBADD
Register via
Eventbrite
Determine
Discounts
User Story
As a business analyst, I want to review the various
IIBA discounts available so that I can pay a
reduced ticket price for DCBADD.
What is Gherkin?
• Business readable, domain specific language
• Connects human concept of cause and effect to software
concept of input/process/output
• Can be interpreted by automation tools to drive
acceptance tests
Gherkin Syntax
Source: Jeffrey Davidson
Scenarios
Scenario: Standard Rate
Given I am purchasing a
ticket to DCBADD
And I am not an IIBA
member
When I view my ticket price
Then I see the full rate of
$200
Scenario: IIBA Rate
Given I am purchasing a
ticket to DCBADD
And I am an IIBA member
When I view my ticket price
Then I see the discounted
rate of $150
Example
Scenario Outline: Determine DCBADD ticket price
Given I am purchasing a ticket to DCBADD
And I am a “<membership type>”
When I view my ticket price
Then I see the discounted “<ticket price>”
Examples:
membership price
nonmember $200
IIBA national $150
IIBA DC $125
Example
Using tables as arguments as input to a Given or as expected output
from a Then:
Scenario: Validate Order Total
Given I am a business analyst
And I am purchasing multiple tickets with varying “<membership type>”
to DCBADD:
When I view my total
Then I see my “<total>”
ticket number & type price
2 nonmember $400
1 IIBA national $150
Guidelines
• Be precise
• Make sure it’s testable
• Focus on business functionality
• Avoid specific details
• Use active voice, not passive
• Have a single action trigger the expected behavior (WHEN
condition)
• Use parameters for concise expression of examples (i.e.
scenario outlines)
Automating the scenarios
Automated Acceptance Tests (AATs)
• Code automates them
• They run constantly
Why Have AATs? (Pros)
Communication
• Helps specify behavior of the system in plain text
• Provides a medium for non-tech and devs to agree on
Are we
talking
about
the right
system?
Seams, unit test mistakes
Automation
“There’s no place for
human beings to be
doing regression testing
manually.”
-Jez Humble
Speedier deployments
Save resources
More testing during development
Why NOT Have AATs? (Cons)
Why don’t more people use them?
Why NOT have AATs?
• Maintenance
• Speed
• High false negatives, non-determinism
Impediments
• Poor adoption
• Bandwidth/Velocity
• Learning Curve/Experience
• Business users won’t write specifications
• Developers won’t automate them
• Brittle if recorded
Solutions
Acceptance Test Strategy
• Happy paths
• Major unhappy paths
• Legacy
• Regression
Minimize # of end-to-end tests
• AATs for journeys, not stories
• Is your new story entirely new?
• Balance high # of unit tests + selected end-to-end &
acceptance
Gherkin
Specs shouldn’t have much setup code
Given my friend ‘Bob’ typed ‘I’m excited’ into the text box
And clicks the Post button on my timeline
When I press the Like link on the post
Then the screen should say ‘Like’
And should include my name as liking it
Given my friend ‘Bob’ has posted ‘I’m excited’
And I am on my timeline
When I like on the post
Then the post should be liked by me
General Tips
• Create different levels of suites depending on depth/level
of feedback desired:
• Smoke, Current iteration/sprint, Regression
• Run AATs as close to the real environment as possible
When Acceptances Tests catches a bug
• See why bug got through unit/integration tests
• Add unit, integration tests
• Prune AATs?
UI tests
• Sometimes tests will fail if the page doesn’t have enough
time to load. Use implicit waits, and explicit when really
needed
• Capture screen shots when tests fail
• Selenium IDE
AAT Workflow
AAT workflow
• Start with a scenario(s)
Given my friend ‘Bob’ has posted ‘I’m excited’
And I am on my timeline
When I like on the post
Then the post should be liked by me
What can you write them in?
Vim
Sublime Text
Tracking AATs

Tracking AATs
Conclusion
• Worth the investment if done properly
• Very expensive and wasteful if not
• Requires collaboration between analysts, testers,
developers
• Developers automate the gherkin
• Focus on journey and scenarios as opposed to stories
Resources:
Slides: http://www.slideshare.net/wynvandevanter/testable-requirements
Books:
• Continuous Delivery, Jez Humble, David Farley
• Growing Object-Oriented Software, Guided By Tests, Steve Freeman, Nat
Pryce
• Specification by Example, Gajko Adzic
Articles:
• Automated Acceptance Tests, http://www.thoughtworks.com/insights/
articles/automated-acceptance-tests
• Using SpecFlow with the Page Object, http://blogs.lessthandot.com/
index.php/EnterpriseDev/application-lifecycle-management/using-specflow-to
• Maintaining Automated Acceptance Tests (ThoughtWorks), http://
www.youtube.com/watch?v=uf0EVbH5hdA
• Creating Maintainable Automated Acceptance Test Suites, Jez Humble,
• http://www.youtube.com/watch?v=v-L_2y6g5DI
Thanks!
Bharti Rupani
@bhartir24
brupani@enterprise-knowledge.com
https://www.linkedin.com/in/bhartir
Wyn Van Devanter
@wynv
wyn.vandevanter@excella.com
https://www.linkedin.com/in/wyntuition
http://www.slideshare.net/wynvandevanter

More Related Content

What's hot

Agile Acceptance Criteria How To
Agile Acceptance Criteria How ToAgile Acceptance Criteria How To
Agile Acceptance Criteria How To
Payton Consulting
 
UI Automation Quirks
UI Automation QuirksUI Automation Quirks
UI Automation Quirks
Lucas Pang
 
Perils of Page-Object Pattern
Perils of Page-Object PatternPerils of Page-Object Pattern
Perils of Page-Object Pattern
Anand Bagmar
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with Testing
Anand Bagmar
 
Selenium Deep Dive
Selenium Deep DiveSelenium Deep Dive
Selenium Deep Dive
Anand Bagmar
 
Grading the Quality of Selenium Tests
Grading the Quality of Selenium TestsGrading the Quality of Selenium Tests
Grading the Quality of Selenium Tests
Marcus Merrell
 
Design patterns in test automation
Design patterns in test automationDesign patterns in test automation
Design patterns in test automation
Mikalai Alimenkou
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with Testing
Thoughtworks
 
Introduction to BDD - shortened
Introduction to BDD - shortenedIntroduction to BDD - shortened
Introduction to BDD - shortened
Seb Rose
 
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure Analysis
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure AnalysisTo Deploy or Not-To-Deploy - decide using TTA's Trend & Failure Analysis
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure Analysis
Anand Bagmar
 
Unit Testing and Behavior Driven Testing with AngularJS - Jesse Liberty | Fal...
Unit Testing and Behavior Driven Testing with AngularJS - Jesse Liberty | Fal...Unit Testing and Behavior Driven Testing with AngularJS - Jesse Liberty | Fal...
Unit Testing and Behavior Driven Testing with AngularJS - Jesse Liberty | Fal...
FalafelSoftware
 
Refactoring page objects The Screenplay Pattern
Refactoring page objects   The Screenplay Pattern Refactoring page objects   The Screenplay Pattern
Refactoring page objects The Screenplay Pattern
RiverGlide
 
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar
 
Apex 10 commandments df14
Apex 10 commandments df14Apex 10 commandments df14
Apex 10 commandments df14
James Loghry
 
Behavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shiftBehavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shift
Aspire Systems
 
Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)
Anand Bagmar
 
Measuring Coverage From E2E Tests
Measuring Coverage From E2E TestsMeasuring Coverage From E2E Tests
Measuring Coverage From E2E Tests
Anand Bagmar
 
Dependency Inversion Principle
Dependency Inversion PrincipleDependency Inversion Principle
Dependency Inversion Principle
Tom Philip
 
BDT workshop - Anand Bagmar
BDT workshop - Anand BagmarBDT workshop - Anand Bagmar
BDT workshop - Anand Bagmar
vodQA
 
Developer Night - Opticon18
Developer Night - Opticon18Developer Night - Opticon18
Developer Night - Opticon18
Optimizely
 

What's hot (20)

Agile Acceptance Criteria How To
Agile Acceptance Criteria How ToAgile Acceptance Criteria How To
Agile Acceptance Criteria How To
 
UI Automation Quirks
UI Automation QuirksUI Automation Quirks
UI Automation Quirks
 
Perils of Page-Object Pattern
Perils of Page-Object PatternPerils of Page-Object Pattern
Perils of Page-Object Pattern
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with Testing
 
Selenium Deep Dive
Selenium Deep DiveSelenium Deep Dive
Selenium Deep Dive
 
Grading the Quality of Selenium Tests
Grading the Quality of Selenium TestsGrading the Quality of Selenium Tests
Grading the Quality of Selenium Tests
 
Design patterns in test automation
Design patterns in test automationDesign patterns in test automation
Design patterns in test automation
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with Testing
 
Introduction to BDD - shortened
Introduction to BDD - shortenedIntroduction to BDD - shortened
Introduction to BDD - shortened
 
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure Analysis
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure AnalysisTo Deploy or Not-To-Deploy - decide using TTA's Trend & Failure Analysis
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure Analysis
 
Unit Testing and Behavior Driven Testing with AngularJS - Jesse Liberty | Fal...
Unit Testing and Behavior Driven Testing with AngularJS - Jesse Liberty | Fal...Unit Testing and Behavior Driven Testing with AngularJS - Jesse Liberty | Fal...
Unit Testing and Behavior Driven Testing with AngularJS - Jesse Liberty | Fal...
 
Refactoring page objects The Screenplay Pattern
Refactoring page objects   The Screenplay Pattern Refactoring page objects   The Screenplay Pattern
Refactoring page objects The Screenplay Pattern
 
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
 
Apex 10 commandments df14
Apex 10 commandments df14Apex 10 commandments df14
Apex 10 commandments df14
 
Behavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shiftBehavior Driven Testing - A paradigm shift
Behavior Driven Testing - A paradigm shift
 
Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)
 
Measuring Coverage From E2E Tests
Measuring Coverage From E2E TestsMeasuring Coverage From E2E Tests
Measuring Coverage From E2E Tests
 
Dependency Inversion Principle
Dependency Inversion PrincipleDependency Inversion Principle
Dependency Inversion Principle
 
BDT workshop - Anand Bagmar
BDT workshop - Anand BagmarBDT workshop - Anand Bagmar
BDT workshop - Anand Bagmar
 
Developer Night - Opticon18
Developer Night - Opticon18Developer Night - Opticon18
Developer Night - Opticon18
 

Viewers also liked

Story Decomposition
Story DecompositionStory Decomposition
Story Decomposition
Bharti Rupani
 
sap ewm online training
sap ewm online trainingsap ewm online training
sap ewm online training
Teja AmpleTrainings
 
This is the story of my life
This is the story of my lifeThis is the story of my life
This is the story of my life
achan574
 
ขนมไทยในวรรณคดี
ขนมไทยในวรรณคดีขนมไทยในวรรณคดี
ขนมไทยในวรรณคดี
0843755840
 
Agile Education: PO Basics
Agile Education: PO BasicsAgile Education: PO Basics
Agile Education: PO Basics
Bharti Rupani
 
Graphical password minor report
Graphical password minor reportGraphical password minor report
Graphical password minor report
Love Kothari
 

Viewers also liked (7)

Power point
Power pointPower point
Power point
 
Story Decomposition
Story DecompositionStory Decomposition
Story Decomposition
 
sap ewm online training
sap ewm online trainingsap ewm online training
sap ewm online training
 
This is the story of my life
This is the story of my lifeThis is the story of my life
This is the story of my life
 
ขนมไทยในวรรณคดี
ขนมไทยในวรรณคดีขนมไทยในวรรณคดี
ขนมไทยในวรรณคดี
 
Agile Education: PO Basics
Agile Education: PO BasicsAgile Education: PO Basics
Agile Education: PO Basics
 
Graphical password minor report
Graphical password minor reportGraphical password minor report
Graphical password minor report
 

Similar to Testable Requirements

Testable requirements
Testable requirementsTestable requirements
Testable requirements
Wyn B. Van Devanter
 
Build the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven TestingBuild the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven Testing
TechWell
 
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghWorkshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Agile ME
 
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"
Christopher Hamm
 
Automated Acceptance Tests in .NET
Automated Acceptance Tests in .NETAutomated Acceptance Tests in .NET
Automated Acceptance Tests in .NET
Wyn B. Van Devanter
 
Agile testing
Agile testingAgile testing
Agile testing
Raj Indugula
 
Growing software from examples
Growing software from examplesGrowing software from examples
Growing software from examples
Seb Rose
 
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Conference
 
Pull_Request_PAW_Shared_Rohit.pptx
Pull_Request_PAW_Shared_Rohit.pptxPull_Request_PAW_Shared_Rohit.pptx
Pull_Request_PAW_Shared_Rohit.pptx
rohitagarwal24
 
presentation.pdf
presentation.pdfpresentation.pdf
presentation.pdf
caa28steve
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
eleksdev
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
vodQA
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
vodQA
 
Birst Webinar Slides: "Build vs. Buy - Making the Right Choice for a Great Da...
Birst Webinar Slides: "Build vs. Buy - Making the Right Choice for a Great Da...Birst Webinar Slides: "Build vs. Buy - Making the Right Choice for a Great Da...
Birst Webinar Slides: "Build vs. Buy - Making the Right Choice for a Great Da...
Birst
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomation
jeisner
 
Improve your website with google website optimizer
Improve your website with google website optimizerImprove your website with google website optimizer
Improve your website with google website optimizerNick Eubanks
 
Automated Acceptance Test Practices and Pitfalls
Automated Acceptance Test Practices and PitfallsAutomated Acceptance Test Practices and Pitfalls
Automated Acceptance Test Practices and Pitfalls
Wyn B. Van Devanter
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber Implementation
TechWell
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew Siemer
Andrew Siemer
 

Similar to Testable Requirements (20)

Testable requirements
Testable requirementsTestable requirements
Testable requirements
 
Build the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven TestingBuild the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven Testing
 
TDD - Ketan Soni
TDD - Ketan SoniTDD - Ketan Soni
TDD - Ketan Soni
 
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghWorkshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
 
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"
 
Automated Acceptance Tests in .NET
Automated Acceptance Tests in .NETAutomated Acceptance Tests in .NET
Automated Acceptance Tests in .NET
 
Agile testing
Agile testingAgile testing
Agile testing
 
Growing software from examples
Growing software from examplesGrowing software from examples
Growing software from examples
 
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
 
Pull_Request_PAW_Shared_Rohit.pptx
Pull_Request_PAW_Shared_Rohit.pptxPull_Request_PAW_Shared_Rohit.pptx
Pull_Request_PAW_Shared_Rohit.pptx
 
presentation.pdf
presentation.pdfpresentation.pdf
presentation.pdf
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
 
Birst Webinar Slides: "Build vs. Buy - Making the Right Choice for a Great Da...
Birst Webinar Slides: "Build vs. Buy - Making the Right Choice for a Great Da...Birst Webinar Slides: "Build vs. Buy - Making the Right Choice for a Great Da...
Birst Webinar Slides: "Build vs. Buy - Making the Right Choice for a Great Da...
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomation
 
Improve your website with google website optimizer
Improve your website with google website optimizerImprove your website with google website optimizer
Improve your website with google website optimizer
 
Automated Acceptance Test Practices and Pitfalls
Automated Acceptance Test Practices and PitfallsAutomated Acceptance Test Practices and Pitfalls
Automated Acceptance Test Practices and Pitfalls
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber Implementation
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew Siemer
 

Recently uploaded

From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 

Recently uploaded (20)

From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 

Testable Requirements

  • 1. Requirements Delivery – 
 Using Examples
  • 2. About Us Bharti Rupani @bhartir24 brupani@enterprise-knowledge.com https://www.linkedin.com/in/bhartir Wyn Van Devanter @wynv wyn.vandevanter@excella.com https://www.linkedin.com/in/wyntuition http://www.slideshare.net/wynvandevanter
  • 3. Terminology • Specification by Example • Executable Specifications • Automated Acceptance Tests (AAT) • Behavior Driven Development (BDD) • Acceptance Test Driven Development (ATDD) • Testable Requirements
  • 5. Testable Requirements • User Journeys • Deliver business value • Clear examples • Executable
  • 6. Why should you care? • Clearly communicate the specifications • No functional gaps • Verify business rules • Build the right thing 6
  • 7. Building Quality Plan Collaborate Deliver Build the right thing Build the thing right
  • 8. Developing Examples Collaboration Prioritized Backlog Business Goals User Journey User Story 2 Acceptance Criteria 1 Example 1 User Story 1 Acceptance Criteria 1 Example 1 Acceptance Criteria 2 Example 1
  • 9. Collaborate How do I code this feature?What are the details of this feature? How do I validate that this work is done?
  • 10. Three Amigos • Business Analyst, Developers and Testers • Collaborate • Share knowledge • Think about the desired outcome • Shared understanding
  • 11. User Journey You are a Business Analyst that is looking for a conference to attend.
  • 12. Example of using an Example Attend BA Conference View Results Region Date View DCBADD Details View information about IIBADC View speaker profiles View Cost Select DCBADD Register via Eventbrite Determine Discounts
  • 13. User Story As a business analyst, I want to review the various IIBA discounts available so that I can pay a reduced ticket price for DCBADD.
  • 14. What is Gherkin? • Business readable, domain specific language • Connects human concept of cause and effect to software concept of input/process/output • Can be interpreted by automation tools to drive acceptance tests
  • 16. Scenarios Scenario: Standard Rate Given I am purchasing a ticket to DCBADD And I am not an IIBA member When I view my ticket price Then I see the full rate of $200 Scenario: IIBA Rate Given I am purchasing a ticket to DCBADD And I am an IIBA member When I view my ticket price Then I see the discounted rate of $150
  • 17. Example Scenario Outline: Determine DCBADD ticket price Given I am purchasing a ticket to DCBADD And I am a “<membership type>” When I view my ticket price Then I see the discounted “<ticket price>” Examples: membership price nonmember $200 IIBA national $150 IIBA DC $125
  • 18. Example Using tables as arguments as input to a Given or as expected output from a Then: Scenario: Validate Order Total Given I am a business analyst And I am purchasing multiple tickets with varying “<membership type>” to DCBADD: When I view my total Then I see my “<total>” ticket number & type price 2 nonmember $400 1 IIBA national $150
  • 19. Guidelines • Be precise • Make sure it’s testable • Focus on business functionality • Avoid specific details • Use active voice, not passive • Have a single action trigger the expected behavior (WHEN condition) • Use parameters for concise expression of examples (i.e. scenario outlines)
  • 21. Automated Acceptance Tests (AATs) • Code automates them • They run constantly
  • 22. Why Have AATs? (Pros)
  • 23. Communication • Helps specify behavior of the system in plain text • Provides a medium for non-tech and devs to agree on Are we talking about the right system?
  • 24. Seams, unit test mistakes
  • 25. Automation “There’s no place for human beings to be doing regression testing manually.” -Jez Humble
  • 28. More testing during development
  • 29. Why NOT Have AATs? (Cons)
  • 30. Why don’t more people use them?
  • 31. Why NOT have AATs? • Maintenance • Speed • High false negatives, non-determinism
  • 32. Impediments • Poor adoption • Bandwidth/Velocity • Learning Curve/Experience • Business users won’t write specifications • Developers won’t automate them • Brittle if recorded
  • 34. Acceptance Test Strategy • Happy paths • Major unhappy paths • Legacy • Regression
  • 35. Minimize # of end-to-end tests • AATs for journeys, not stories • Is your new story entirely new? • Balance high # of unit tests + selected end-to-end & acceptance
  • 36. Gherkin Specs shouldn’t have much setup code Given my friend ‘Bob’ typed ‘I’m excited’ into the text box And clicks the Post button on my timeline When I press the Like link on the post Then the screen should say ‘Like’ And should include my name as liking it Given my friend ‘Bob’ has posted ‘I’m excited’ And I am on my timeline When I like on the post Then the post should be liked by me
  • 37. General Tips • Create different levels of suites depending on depth/level of feedback desired: • Smoke, Current iteration/sprint, Regression • Run AATs as close to the real environment as possible
  • 38. When Acceptances Tests catches a bug • See why bug got through unit/integration tests • Add unit, integration tests • Prune AATs?
  • 39. UI tests • Sometimes tests will fail if the page doesn’t have enough time to load. Use implicit waits, and explicit when really needed • Capture screen shots when tests fail • Selenium IDE
  • 41. AAT workflow • Start with a scenario(s) Given my friend ‘Bob’ has posted ‘I’m excited’ And I am on my timeline When I like on the post Then the post should be liked by me
  • 42. What can you write them in? Vim Sublime Text
  • 45. Conclusion • Worth the investment if done properly • Very expensive and wasteful if not • Requires collaboration between analysts, testers, developers • Developers automate the gherkin • Focus on journey and scenarios as opposed to stories
  • 46. Resources: Slides: http://www.slideshare.net/wynvandevanter/testable-requirements Books: • Continuous Delivery, Jez Humble, David Farley • Growing Object-Oriented Software, Guided By Tests, Steve Freeman, Nat Pryce • Specification by Example, Gajko Adzic Articles: • Automated Acceptance Tests, http://www.thoughtworks.com/insights/ articles/automated-acceptance-tests • Using SpecFlow with the Page Object, http://blogs.lessthandot.com/ index.php/EnterpriseDev/application-lifecycle-management/using-specflow-to • Maintaining Automated Acceptance Tests (ThoughtWorks), http:// www.youtube.com/watch?v=uf0EVbH5hdA • Creating Maintainable Automated Acceptance Test Suites, Jez Humble, • http://www.youtube.com/watch?v=v-L_2y6g5DI
  • 47. Thanks! Bharti Rupani @bhartir24 brupani@enterprise-knowledge.com https://www.linkedin.com/in/bhartir Wyn Van Devanter @wynv wyn.vandevanter@excella.com https://www.linkedin.com/in/wyntuition http://www.slideshare.net/wynvandevanter