SlideShare a Scribd company logo
1 of 47
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:
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

Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016
Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016
Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016Steven Smith
 
How to scale your Test Automation
How to scale your Test AutomationHow to scale your Test Automation
How to scale your Test AutomationKlaus Salchner
 
Improving The Quality of Existing Software
Improving The Quality of Existing SoftwareImproving The Quality of Existing Software
Improving The Quality of Existing SoftwareSteven Smith
 
Selenium Deep Dive
Selenium Deep DiveSelenium Deep Dive
Selenium Deep DiveAnand Bagmar
 
Improving the Quality of Existing Software
Improving the Quality of Existing SoftwareImproving the Quality of Existing Software
Improving the Quality of Existing SoftwareSteven Smith
 
Breaking Dependencies to Allow Unit Testing
Breaking Dependencies to Allow Unit TestingBreaking Dependencies to Allow Unit Testing
Breaking Dependencies to Allow Unit TestingSteven Smith
 
Measuring Coverage From E2E Tests
Measuring Coverage From E2E TestsMeasuring Coverage From E2E Tests
Measuring Coverage From E2E TestsAnand Bagmar
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testingdversaci
 
Testing for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into EverythingTesting for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into EverythingCamille Bell
 
WE are Doing it Wrong - Dmitry Sharkov
WE are Doing it Wrong - Dmitry SharkovWE are Doing it Wrong - Dmitry Sharkov
WE are Doing it Wrong - Dmitry SharkovQA or the Highway
 
Design patterns in test automation
Design patterns in test automationDesign patterns in test automation
Design patterns in test automationMikalai Alimenkou
 
Automate Debugging with git bisect
Automate Debugging with git bisectAutomate Debugging with git bisect
Automate Debugging with git bisectCamille Bell
 
Automated UI test on mobile - with Cucumber/Calabash
Automated UI test on mobile - with Cucumber/CalabashAutomated UI test on mobile - with Cucumber/Calabash
Automated UI test on mobile - with Cucumber/CalabashNiels Frydenholm
 
Implementing Testing for Behavior-Driven Development Using Cucumber
Implementing Testing for Behavior-Driven Development Using CucumberImplementing Testing for Behavior-Driven Development Using Cucumber
Implementing Testing for Behavior-Driven Development Using CucumberTechWell
 
Behavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and javaBehavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and javaNaveen Kumar Singh
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with CucumberAsheesh Mehdiratta
 
Patterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsitePatterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsiteAnand Ramdeo
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Gáspár Nagy
 
Grading the Quality of Selenium Tests
Grading the Quality of Selenium TestsGrading the Quality of Selenium Tests
Grading the Quality of Selenium TestsMarcus Merrell
 

What's hot (20)

Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016
Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016
Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016
 
How to scale your Test Automation
How to scale your Test AutomationHow to scale your Test Automation
How to scale your Test Automation
 
Improving The Quality of Existing Software
Improving The Quality of Existing SoftwareImproving The Quality of Existing Software
Improving The Quality of Existing Software
 
Selenium Deep Dive
Selenium Deep DiveSelenium Deep Dive
Selenium Deep Dive
 
Improving the Quality of Existing Software
Improving the Quality of Existing SoftwareImproving the Quality of Existing Software
Improving the Quality of Existing Software
 
Breaking Dependencies to Allow Unit Testing
Breaking Dependencies to Allow Unit TestingBreaking Dependencies to Allow Unit Testing
Breaking Dependencies to Allow Unit Testing
 
Measuring Coverage From E2E Tests
Measuring Coverage From E2E TestsMeasuring Coverage From E2E Tests
Measuring Coverage From E2E Tests
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testing
 
Testing for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into EverythingTesting for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into Everything
 
WE are Doing it Wrong - Dmitry Sharkov
WE are Doing it Wrong - Dmitry SharkovWE are Doing it Wrong - Dmitry Sharkov
WE are Doing it Wrong - Dmitry Sharkov
 
Design patterns in test automation
Design patterns in test automationDesign patterns in test automation
Design patterns in test automation
 
Automate Debugging with git bisect
Automate Debugging with git bisectAutomate Debugging with git bisect
Automate Debugging with git bisect
 
Automated UI test on mobile - with Cucumber/Calabash
Automated UI test on mobile - with Cucumber/CalabashAutomated UI test on mobile - with Cucumber/Calabash
Automated UI test on mobile - with Cucumber/Calabash
 
Implementing Testing for Behavior-Driven Development Using Cucumber
Implementing Testing for Behavior-Driven Development Using CucumberImplementing Testing for Behavior-Driven Development Using Cucumber
Implementing Testing for Behavior-Driven Development Using Cucumber
 
Behavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and javaBehavior driven development - cucumber, Junit and java
Behavior driven development - cucumber, Junit and java
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with Cucumber
 
Patterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsitePatterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsite
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
 
Grading the Quality of Selenium Tests
Grading the Quality of Selenium TestsGrading the Quality of Selenium Tests
Grading the Quality of Selenium Tests
 

Similar to Testable requirements

Testable Requirements
Testable Requirements Testable Requirements
Testable Requirements Bharti Rupani
 
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 TestingTechWell
 
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 SinghAgile ME
 
Growing software from examples
Growing software from examplesGrowing software from examples
Growing software from examplesSeb Rose
 
Pull_Request_PAW_Shared_Rohit.pptx
Pull_Request_PAW_Shared_Rohit.pptxPull_Request_PAW_Shared_Rohit.pptx
Pull_Request_PAW_Shared_Rohit.pptxrohitagarwal24
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Roleeleksdev
 
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
 
Automated Acceptance Tests in .NET
Automated Acceptance Tests in .NETAutomated Acceptance Tests in .NET
Automated Acceptance Tests in .NETWyn B. Van Devanter
 
presentation.pdf
presentation.pdfpresentation.pdf
presentation.pdfcaa28steve
 
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
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationTechWell
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomationjeisner
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSonivodQA
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSonivodQA
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test AutomationNaveen Kumar Singh
 
Tuhin Mitra: How I Automate My Negative Tests
Tuhin Mitra: How I Automate My Negative TestsTuhin Mitra: How I Automate My Negative Tests
Tuhin Mitra: How I Automate My Negative TestsAnna Royzman
 
Modeling Requirements Using Examples
Modeling Requirements Using ExamplesModeling Requirements Using Examples
Modeling Requirements Using ExamplesExcella
 
90 days to make a difference - approach
90 days to make a difference - approach90 days to make a difference - approach
90 days to make a difference - approachStuart Creasey
 

Similar to Testable requirements (20)

Testable Requirements
Testable Requirements Testable 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
 
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
 
TDD - Ketan Soni
TDD - Ketan SoniTDD - Ketan Soni
TDD - Ketan Soni
 
Growing software from examples
Growing software from examplesGrowing software from examples
Growing software from examples
 
Pull_Request_PAW_Shared_Rohit.pptx
Pull_Request_PAW_Shared_Rohit.pptxPull_Request_PAW_Shared_Rohit.pptx
Pull_Request_PAW_Shared_Rohit.pptx
 
Agile testing
Agile testingAgile testing
Agile testing
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
 
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...
 
Automated Acceptance Tests in .NET
Automated Acceptance Tests in .NETAutomated Acceptance Tests in .NET
Automated Acceptance Tests in .NET
 
presentation.pdf
presentation.pdfpresentation.pdf
presentation.pdf
 
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"
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber Implementation
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomation
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
 
Tuhin Mitra: How I Automate My Negative Tests
Tuhin Mitra: How I Automate My Negative TestsTuhin Mitra: How I Automate My Negative Tests
Tuhin Mitra: How I Automate My Negative Tests
 
Modeling Requirements Using Examples
Modeling Requirements Using ExamplesModeling Requirements Using Examples
Modeling Requirements Using Examples
 
90 days to make a difference - approach
90 days to make a difference - approach90 days to make a difference - approach
90 days to make a difference - approach
 

More from Wyn B. Van Devanter

Container orchestration overview
Container orchestration overviewContainer orchestration overview
Container orchestration overviewWyn B. Van Devanter
 
AWS Elastic Container Service (ECS) with a CI Pipeline Overview
AWS Elastic Container Service (ECS) with a CI Pipeline OverviewAWS Elastic Container Service (ECS) with a CI Pipeline Overview
AWS Elastic Container Service (ECS) with a CI Pipeline OverviewWyn B. Van Devanter
 
Performance tuning an Object-Relational Mapper (ORM)
Performance tuning an Object-Relational Mapper (ORM)Performance tuning an Object-Relational Mapper (ORM)
Performance tuning an Object-Relational Mapper (ORM)Wyn B. Van Devanter
 

More from Wyn B. Van Devanter (7)

Container orchestration overview
Container orchestration overviewContainer orchestration overview
Container orchestration overview
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
AWS Elastic Container Service (ECS) with a CI Pipeline Overview
AWS Elastic Container Service (ECS) with a CI Pipeline OverviewAWS Elastic Container Service (ECS) with a CI Pipeline Overview
AWS Elastic Container Service (ECS) with a CI Pipeline Overview
 
Benefits from AATs
Benefits from AATsBenefits from AATs
Benefits from AATs
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
.Net Core 1.0 vs .NET Framework
.Net Core 1.0 vs .NET Framework.Net Core 1.0 vs .NET Framework
.Net Core 1.0 vs .NET Framework
 
Performance tuning an Object-Relational Mapper (ORM)
Performance tuning an Object-Relational Mapper (ORM)Performance tuning an Object-Relational Mapper (ORM)
Performance tuning an Object-Relational Mapper (ORM)
 

Recently uploaded

Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 

Recently uploaded (20)

Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 

Testable requirements

  • 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: 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