SlideShare a Scribd company logo
1 of 23
Behavioral Driven Development
- The Compelling Story
Presented By
Mark Sage
Testing in an Agile/DevOps Team
• Being proactive (Quality Assurance) instead of reactive (Testing)
• Its about preventing defects rather than finding them
• Testing is an Engineering Practise
• Testing and Quality is the responsibility of the team
• Testing is done through out and not just at the end
• There are no phases of Testing in Agile/DevOps but rather testing is performed as the
product evolves through the life cycle
• Continuous Testing is key for Agile/DevOps to be successful
Shift left - Continuous Quality through BDD with
In-Sprint Automation
Unit
Unit
Integration
Integration
SVT
SVT
UAT
25%
Tested using manual
techniques,
automation usual only
done when product is
in production
75%
Manual
Automated GUI
Automated
API
Integration
Component
Automated Unit Test
5%
70%
25%
1. Test Early & Often
2. Find Defects Early
3. Write Automation Early
4. Engage Everyone
Need to move away from traditional to an approach focusing on increased defect capture through Unit and
Service Layer Testing
UAT
Detailed Automation Triangle
E2E
UAT
SVT
Component
Unit Testing
API Unit Testing
UI Component
Testing
API Component
Testing
UI
Integration
UI Integration
To API
API Integration
Test
Tester
Dev
Test
Product
Dev,
ETE
QA
CI
QA
Manual
Automated
Continuous – Integration – Deployment –
Testing
Dev ETE QA Prod
Continuous Integration Continuous Deployment
Continuous Testing
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
Its about QualityBDD is Not About Testing!!!
The History of BDD?
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
In the beginning there was
TDD
Write a failing test
Write code
Till test passes
This was
not
enough
Teams needed to
understand what they
are building and why
What is Behavioural Driven Development
about?
• BDD is about engineering Quality into team delivery. This is
achieved as follows:
• Understanding what is important for the client
• Creating features with the use of Examples
• Fully understanding what Features are important to the
Customer
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
Implementation BDD
• Collaboration
• Insight
• Business Value
• Self-confident Development Teams
• Lower Cost
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
BDD Process
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
Most Valuable
items in the
backlog
1
One to Request
Illustrate
One to Protest
One to Suggest
2
Scenar i os
Given _______
When _______
Then _______
Formulate
3 Automate
4 Validate
5 Demonstrate
The 3 Amigos walk into a bar 
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
Concrete
Examples
Given
When
Then
Presents problem to
the team that needs to
be solved. Context is
given by the PO/BA
with desired behaviour
One to Request
Brings possible
solutions on the
problem. Usually the
developer but can be
anyone in the team.
One to Suggest
The is the person that
challenges the
assumptions, questions
and highlights
ambiguities.
One to Protest
The Testing Practise of BDD
• Testers are the Custodians of Quality within the team
• Testers need to start looking at how do we prevent defects rather than find
them.
• Be part of the BDD discussion and assist the team in building the best
system possible, guiding them from a testers perspective….asking how are
we going to test this and that.
• Testing becomes an engineering discipline
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
Process of Testing Features
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
The tester inspects the
Examples given and
expands them with
additional scenarios.
Using this as a guide
starts with building
Automated tests
Testers then convert
Feature files into an
Executable File, create
step definitions and
map out the page
objects (setup config if
API/service testing)
Tests are then executed
against the target
application. Either by
manually executing
packs or preferably by
DevOps pipelines
Components of a Feature File
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
Components of a Feature File…continued
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
Example of Written feature file
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
Further Examples
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
BDD Framework – Implemented Using Cucumber
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
User Story
Acceptance Criteria
1--------------------
2--------------------
Gherkin
Scenarios
@Runwith(Cucumber.class)
@CucumberOptions()
Public class RunTest
@Given( ^I have an account$ )
Public void i_Have_An_Account(){
account.getAccount();
Assert(x,y){};
}
@Steps
ProvideApplicationinfo_EndUserS
teps endUserSteps;
]
@FindBy(xpath="/html/body/app-
root/app-process-step-page/div/div/
div[3]/div[1]/div/personal-loan-offer-
widget/div/div/div[5]/label")
private WebElementFacade
chkConfirm
Feature File
Cucumber Framework
Tags:
@Smoke
@Regression
@Release
@UserStory
@TestCase
Runner
Action Facade
Step File
Page Object
Serenity Framework
- Abstraction
- Reporting
Connector Test Object
Selenium
Appium
RESTful
Web
Mobile
Web Service
Technology FacingBusiness Facing
1:1
Tools/Frameworks Available
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
IDE’s
Frameworks
Tools/Frameworks Available
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
Tools
Closure
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
By implementing BDD teams get to properly understand what we are meant to build and be able
create automated tests to confirm what we are building is correct
With out BDD and TDD With BDD and TDD
Yay I got
what I
wanted
The Customer
TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
Thanks for
Listening. Its
Question
Time?
Mark Sage
I have 15 years experience in testing mission-critical projects in a variety
of environments, mostly in the domain of financial and banking
systems. I am passionate about Software Testing and Quality Assurance
(actually everything about the topic of Quality).
Over the past few years, I have become an Agilest changing my career
and equipping myself with new ways of working. Through this journey I
have found that I have a further passion with coaching and mentoring
teams, enabling them through Quality Agile Practises.
Currently I am working at Nedbank as a QA Coach and Integration
Specialist.
TestITAfrica 2018 - Behavioural Driven Development - The Compelling Story
Mark Sage
MDSage@Gmail.com
- Mark-sage-a356598
- MDSage@Gmail.com

More Related Content

What's hot

TUI & qTest: Why, How and Where Next
TUI & qTest:  Why, How and Where Next TUI & qTest:  Why, How and Where Next
TUI & qTest: Why, How and Where Next QASymphony
 
Optimizing Your Agile Testing Processes
Optimizing Your Agile Testing ProcessesOptimizing Your Agile Testing Processes
Optimizing Your Agile Testing ProcessesStanton Champion
 
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...QA or the Highway
 
Agile Testing Alliance 5th meetup introduction by Brijesh
Agile Testing Alliance 5th meetup introduction by BrijeshAgile Testing Alliance 5th meetup introduction by Brijesh
Agile Testing Alliance 5th meetup introduction by BrijeshAgile Testing alliance
 
The digital shakeout in quality assurance and testing by Shiva Agolla and Sat...
The digital shakeout in quality assurance and testing by Shiva Agolla and Sat...The digital shakeout in quality assurance and testing by Shiva Agolla and Sat...
The digital shakeout in quality assurance and testing by Shiva Agolla and Sat...QA or the Highway
 
#TesterbhiCoder - Every Tester should get into coding - Selenium automation
#TesterbhiCoder - Every Tester should get into coding - Selenium automation#TesterbhiCoder - Every Tester should get into coding - Selenium automation
#TesterbhiCoder - Every Tester should get into coding - Selenium automationAgile Testing Alliance
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanQA or the Highway
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQuality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQASymphony
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization TechWell
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?vodQA
 
Agile testing alliance cp aat highlights 1.2
Agile testing alliance cp aat highlights 1.2Agile testing alliance cp aat highlights 1.2
Agile testing alliance cp aat highlights 1.2Agile Testing Alliance
 
Agile Testing Alliance Chapter and Meetup Details - June 2016
Agile Testing Alliance Chapter and Meetup Details - June 2016Agile Testing Alliance Chapter and Meetup Details - June 2016
Agile Testing Alliance Chapter and Meetup Details - June 2016Agile Testing Alliance
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019Peter Gfader
 
Large-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in PracticeLarge-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in PracticeTechWell
 

What's hot (20)

TUI & qTest: Why, How and Where Next
TUI & qTest:  Why, How and Where Next TUI & qTest:  Why, How and Where Next
TUI & qTest: Why, How and Where Next
 
Ngtwsontpnts14july2014
Ngtwsontpnts14july2014Ngtwsontpnts14july2014
Ngtwsontpnts14july2014
 
Optimizing Your Agile Testing Processes
Optimizing Your Agile Testing ProcessesOptimizing Your Agile Testing Processes
Optimizing Your Agile Testing Processes
 
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
 
#BugATAhon2016 #WhoHasKeeda
#BugATAhon2016 #WhoHasKeeda#BugATAhon2016 #WhoHasKeeda
#BugATAhon2016 #WhoHasKeeda
 
Agile Testing Alliance 5th meetup introduction by Brijesh
Agile Testing Alliance 5th meetup introduction by BrijeshAgile Testing Alliance 5th meetup introduction by Brijesh
Agile Testing Alliance 5th meetup introduction by Brijesh
 
The digital shakeout in quality assurance and testing by Shiva Agolla and Sat...
The digital shakeout in quality assurance and testing by Shiva Agolla and Sat...The digital shakeout in quality assurance and testing by Shiva Agolla and Sat...
The digital shakeout in quality assurance and testing by Shiva Agolla and Sat...
 
ATA CP-MAT program highlights
ATA CP-MAT program highlightsATA CP-MAT program highlights
ATA CP-MAT program highlights
 
#TesterbhiCoder - Every Tester should get into coding - Selenium automation
#TesterbhiCoder - Every Tester should get into coding - Selenium automation#TesterbhiCoder - Every Tester should get into coding - Selenium automation
#TesterbhiCoder - Every Tester should get into coding - Selenium automation
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQuality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the Enterprise
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?
 
What is Agile Testing?
What is Agile Testing? What is Agile Testing?
What is Agile Testing?
 
Agile test tools
Agile test toolsAgile test tools
Agile test tools
 
Agile testing alliance cp aat highlights 1.2
Agile testing alliance cp aat highlights 1.2Agile testing alliance cp aat highlights 1.2
Agile testing alliance cp aat highlights 1.2
 
Are we done yet?
Are we done yet?Are we done yet?
Are we done yet?
 
Agile Testing Alliance Chapter and Meetup Details - June 2016
Agile Testing Alliance Chapter and Meetup Details - June 2016Agile Testing Alliance Chapter and Meetup Details - June 2016
Agile Testing Alliance Chapter and Meetup Details - June 2016
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
 
Large-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in PracticeLarge-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in Practice
 

Similar to Behavioral driven development the compelling story For Testers

Agile2013 sustainable change
Agile2013 sustainable changeAgile2013 sustainable change
Agile2013 sustainable changeDennis Stevens
 
Best Practices for a Repeatable Shift-Left Commitment
Best Practices for a Repeatable Shift-Left CommitmentBest Practices for a Repeatable Shift-Left Commitment
Best Practices for a Repeatable Shift-Left CommitmentApplause
 
A confused tester in agile world finalversion
A confused tester in agile world finalversionA confused tester in agile world finalversion
A confused tester in agile world finalversionAshish Kumar
 
Agile metrics at-pmi bangalore
Agile metrics at-pmi bangaloreAgile metrics at-pmi bangalore
Agile metrics at-pmi bangaloreBimlesh Gundurao
 
AgileTestStrategy.pptx
AgileTestStrategy.pptxAgileTestStrategy.pptx
AgileTestStrategy.pptxEdisonTobon3
 
The product owner and the scrum team. Can one person do this at scale?
The product owner and the scrum team. Can one person do this at scale?The product owner and the scrum team. Can one person do this at scale?
The product owner and the scrum team. Can one person do this at scale?Derek Huether
 
Overcome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challengesOvercome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challengesiCiDIGITAL
 
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager Mark Kelley
 
Mastering Agile Practices to Build High Performing Teams
Mastering Agile Practices to Build High Performing TeamsMastering Agile Practices to Build High Performing Teams
Mastering Agile Practices to Build High Performing TeamsAgileThought
 
Curiosity and Infuse Consulting Present: Sustainable Test Automation Strategi...
Curiosity and Infuse Consulting Present: Sustainable Test Automation Strategi...Curiosity and Infuse Consulting Present: Sustainable Test Automation Strategi...
Curiosity and Infuse Consulting Present: Sustainable Test Automation Strategi...Curiosity Software Ireland
 
Deepti Debnath_Citi Corp-2015
Deepti Debnath_Citi Corp-2015 Deepti Debnath_Citi Corp-2015
Deepti Debnath_Citi Corp-2015 deepti Debnath
 
A comparative study of process templates in team
A comparative study of process templates in teamA comparative study of process templates in team
A comparative study of process templates in teamaminmesbahi
 
QA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael HallQA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael HallSynerzip
 
OM2_Lecture 11vvvhhbbjjbjdjjeebjrhvhuuhh
OM2_Lecture 11vvvhhbbjjbjdjjeebjrhvhuuhhOM2_Lecture 11vvvhhbbjjbjdjjeebjrhvhuuhh
OM2_Lecture 11vvvhhbbjjbjdjjeebjrhvhuuhhrammanoharjharupnaga
 
Agile Test Management
Agile Test ManagementAgile Test Management
Agile Test Managementfranohara99
 

Similar to Behavioral driven development the compelling story For Testers (20)

Agile2013 sustainable change
Agile2013 sustainable changeAgile2013 sustainable change
Agile2013 sustainable change
 
Agile testing
Agile testingAgile testing
Agile testing
 
Best Practices for a Repeatable Shift-Left Commitment
Best Practices for a Repeatable Shift-Left CommitmentBest Practices for a Repeatable Shift-Left Commitment
Best Practices for a Repeatable Shift-Left Commitment
 
A confused tester in agile world finalversion
A confused tester in agile world finalversionA confused tester in agile world finalversion
A confused tester in agile world finalversion
 
Agile metrics at-pmi bangalore
Agile metrics at-pmi bangaloreAgile metrics at-pmi bangalore
Agile metrics at-pmi bangalore
 
AgileTestStrategy.pptx
AgileTestStrategy.pptxAgileTestStrategy.pptx
AgileTestStrategy.pptx
 
Neil Potter Presentation
Neil Potter Presentation Neil Potter Presentation
Neil Potter Presentation
 
The product owner and the scrum team. Can one person do this at scale?
The product owner and the scrum team. Can one person do this at scale?The product owner and the scrum team. Can one person do this at scale?
The product owner and the scrum team. Can one person do this at scale?
 
Overcome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challengesOvercome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challenges
 
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager
 
Expo qa15 Keynote
Expo qa15 KeynoteExpo qa15 Keynote
Expo qa15 Keynote
 
Mastering Agile Practices to Build High Performing Teams
Mastering Agile Practices to Build High Performing TeamsMastering Agile Practices to Build High Performing Teams
Mastering Agile Practices to Build High Performing Teams
 
Curiosity and Infuse Consulting Present: Sustainable Test Automation Strategi...
Curiosity and Infuse Consulting Present: Sustainable Test Automation Strategi...Curiosity and Infuse Consulting Present: Sustainable Test Automation Strategi...
Curiosity and Infuse Consulting Present: Sustainable Test Automation Strategi...
 
Deepti Debnath_Citi Corp-2015
Deepti Debnath_Citi Corp-2015 Deepti Debnath_Citi Corp-2015
Deepti Debnath_Citi Corp-2015
 
Agile testing MyBTEC
Agile testing MyBTECAgile testing MyBTEC
Agile testing MyBTEC
 
A comparative study of process templates in team
A comparative study of process templates in teamA comparative study of process templates in team
A comparative study of process templates in team
 
QA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael HallQA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael Hall
 
OM2_Lecture 11vvvhhbbjjbjdjjeebjrhvhuuhh
OM2_Lecture 11vvvhhbbjjbjdjjeebjrhvhuuhhOM2_Lecture 11vvvhhbbjjbjdjjeebjrhvhuuhh
OM2_Lecture 11vvvhhbbjjbjdjjeebjrhvhuuhh
 
TestOps and Shift Left
TestOps and Shift LeftTestOps and Shift Left
TestOps and Shift Left
 
Agile Test Management
Agile Test ManagementAgile Test Management
Agile Test Management
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Behavioral driven development the compelling story For Testers

  • 1. Behavioral Driven Development - The Compelling Story Presented By Mark Sage
  • 2. Testing in an Agile/DevOps Team • Being proactive (Quality Assurance) instead of reactive (Testing) • Its about preventing defects rather than finding them • Testing is an Engineering Practise • Testing and Quality is the responsibility of the team • Testing is done through out and not just at the end • There are no phases of Testing in Agile/DevOps but rather testing is performed as the product evolves through the life cycle • Continuous Testing is key for Agile/DevOps to be successful
  • 3. Shift left - Continuous Quality through BDD with In-Sprint Automation Unit Unit Integration Integration SVT SVT UAT 25% Tested using manual techniques, automation usual only done when product is in production 75% Manual Automated GUI Automated API Integration Component Automated Unit Test 5% 70% 25% 1. Test Early & Often 2. Find Defects Early 3. Write Automation Early 4. Engage Everyone Need to move away from traditional to an approach focusing on increased defect capture through Unit and Service Layer Testing UAT
  • 4. Detailed Automation Triangle E2E UAT SVT Component Unit Testing API Unit Testing UI Component Testing API Component Testing UI Integration UI Integration To API API Integration Test Tester Dev Test Product Dev, ETE QA CI QA Manual Automated
  • 5. Continuous – Integration – Deployment – Testing Dev ETE QA Prod Continuous Integration Continuous Deployment Continuous Testing
  • 6. TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com Its about QualityBDD is Not About Testing!!!
  • 7. The History of BDD? TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com In the beginning there was TDD Write a failing test Write code Till test passes This was not enough Teams needed to understand what they are building and why
  • 8. What is Behavioural Driven Development about? • BDD is about engineering Quality into team delivery. This is achieved as follows: • Understanding what is important for the client • Creating features with the use of Examples • Fully understanding what Features are important to the Customer TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com
  • 9. Implementation BDD • Collaboration • Insight • Business Value • Self-confident Development Teams • Lower Cost TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com
  • 10. BDD Process TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com Most Valuable items in the backlog 1 One to Request Illustrate One to Protest One to Suggest 2 Scenar i os Given _______ When _______ Then _______ Formulate 3 Automate 4 Validate 5 Demonstrate
  • 11. The 3 Amigos walk into a bar  TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com Concrete Examples Given When Then Presents problem to the team that needs to be solved. Context is given by the PO/BA with desired behaviour One to Request Brings possible solutions on the problem. Usually the developer but can be anyone in the team. One to Suggest The is the person that challenges the assumptions, questions and highlights ambiguities. One to Protest
  • 12. The Testing Practise of BDD • Testers are the Custodians of Quality within the team • Testers need to start looking at how do we prevent defects rather than find them. • Be part of the BDD discussion and assist the team in building the best system possible, guiding them from a testers perspective….asking how are we going to test this and that. • Testing becomes an engineering discipline TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com
  • 13. Process of Testing Features TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com The tester inspects the Examples given and expands them with additional scenarios. Using this as a guide starts with building Automated tests Testers then convert Feature files into an Executable File, create step definitions and map out the page objects (setup config if API/service testing) Tests are then executed against the target application. Either by manually executing packs or preferably by DevOps pipelines
  • 14. Components of a Feature File TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com
  • 15. Components of a Feature File…continued TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com
  • 16. Example of Written feature file TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com
  • 17. Further Examples TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com
  • 18. BDD Framework – Implemented Using Cucumber TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com User Story Acceptance Criteria 1-------------------- 2-------------------- Gherkin Scenarios @Runwith(Cucumber.class) @CucumberOptions() Public class RunTest @Given( ^I have an account$ ) Public void i_Have_An_Account(){ account.getAccount(); Assert(x,y){}; } @Steps ProvideApplicationinfo_EndUserS teps endUserSteps; ] @FindBy(xpath="/html/body/app- root/app-process-step-page/div/div/ div[3]/div[1]/div/personal-loan-offer- widget/div/div/div[5]/label") private WebElementFacade chkConfirm Feature File Cucumber Framework Tags: @Smoke @Regression @Release @UserStory @TestCase Runner Action Facade Step File Page Object Serenity Framework - Abstraction - Reporting Connector Test Object Selenium Appium RESTful Web Mobile Web Service Technology FacingBusiness Facing 1:1
  • 19. Tools/Frameworks Available TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com IDE’s Frameworks
  • 20. Tools/Frameworks Available TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com Tools
  • 21. Closure TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com By implementing BDD teams get to properly understand what we are meant to build and be able create automated tests to confirm what we are building is correct With out BDD and TDD With BDD and TDD Yay I got what I wanted The Customer
  • 22. TestITAfrica 2018 - Behavioral Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com Thanks for Listening. Its Question Time?
  • 23. Mark Sage I have 15 years experience in testing mission-critical projects in a variety of environments, mostly in the domain of financial and banking systems. I am passionate about Software Testing and Quality Assurance (actually everything about the topic of Quality). Over the past few years, I have become an Agilest changing my career and equipping myself with new ways of working. Through this journey I have found that I have a further passion with coaching and mentoring teams, enabling them through Quality Agile Practises. Currently I am working at Nedbank as a QA Coach and Integration Specialist. TestITAfrica 2018 - Behavioural Driven Development - The Compelling Story Mark Sage MDSage@Gmail.com - Mark-sage-a356598 - MDSage@Gmail.com

Editor's Notes

  1. Test automation and agile software development go hand in hand, but automating is often easier said than done. Most developers recognize the benefits of test automation: it speeds up testing, lowers costs, increases coverage, etcetera, but, many never get past the initial investment required to get it started How do we get started? How do we know on which areas to focus? Which test cases should be automated? In non-agile software development, many people end up inadvertently falling into the “ice cream cone anti-pattern” for testing by putting more emphasis on automating at the UI level. EQA is more fond of the approach that flips that ice cream cone upside down. We agree with the approach made popular by Mike Cohn, the agile test automation pyramid, that gives you the most bang for your automation buck, improving the ROI of automation and guaranteeing that you will receive the most benefits from automation Base Layer: Unit Tests Clearly in the pyramid, (as a part of the best testing practices for agile teams), most of the testing should take place in the development stage, running unit tests after every build. These tests are the easiest, cheapest, and fastest to complete and are an important aspect of test driven development. Running more tests at a lower level allows us to “check our work” as we go, getting feedback immediately and allowing us to know exactly where the bugs are when it is much harder for them to hide. Here, the bugs will also have a shorter life span, having been born and removed in less than a minute, perhaps. During the UI tests, bugs will have lived for much longer and will put up a greater fight because they have lived there very comfortably for a longer period of time (perhaps even a couple of days). Mid-layer: API/ Integration/ Component Tests After we run all of the unit tests and they pass, we can move onto the API/ integration/ component testing phase. Integration tests are run to make sure that all the components work together properly. This is where we can test most of the logic and business processes without going through the UI. It is best to automate here as much as possible. If you have to decide whether to automate at this level or at the UI level, here you’ll have less problems, easier maintenance, faster test execution (meaning finding bugs sooner and decreasing their lifespans) and you get to test the logic of your system. These tests are slower and more complex than unit tests, but they are still faster and less brittle than UI tests. Top Layer: UI Tests Last and run least are UI tests. It’s best to run as few as possible as they are costly, more difficult to prepare and maintain, and take a long time. Here you just want to make sure that the user interface itself works properly, knowing that all the other aspects of the system should have already been tested. Automate only the most critical tests, end to end, with a flow starting from the user login and ending with the approval of the invoice. It’s also helpful to focus on things related to the browsers or the UI. Be careful with these tests as they are more likely to provide false negatives and false positives. After running the UI tests, manual and exploratory testing can be conducted (as shown in the sphere shape above the pyramid).  As you can see, the pyramid approach is a stronger, more beneficial and cost-effective way to implement test automation than putting the focus on automated GUI tests and inadvertently following the “ice cream cone anti-pattern.” The pyramid provides a strong testing base in the unit testing phase from which to build upon further testing in the integration and UI phases whereas the ice cream cone approach is more “top heavy” and less stable. To excel in the agile development world, it is imperative to follow the automation testing pyramid in order to produce the best quality software possible.
  2. What am I testing? Am I automating just for the sake of it? am I automating or testing here just to fit in to the Automation pyramid? Create unit, component and integration testing–but where? The simple answer is the Automation triangle needs to be expanded in practice. One needs to break it up even further when you tackle the actual effort on your project. This effort then explodes- as I said its not magic and one has to prepare for this personally and let it be known to the team and relevant interested parties- as this effort ultimately affects the sprint and in-turn estimation which then impacts actual time to delivery. Testers full testing effort is usually not limited to just an API or one part of the UI. A testers effectiveness is evident when he/she has the full picture in his/her mind, testing the entire application as seen by the user and beyond! Front end, back-end, logging etc. With this in mind if the true sense of ‘Shift left’ is to materialise one needs to cover testing and automation at every possible level. UI and API (and whatever other backend magic that exists) That then means that triangle now needs to be less vague and more specific to include both UI and API/Backend tests across the different levels for it to make practical sense to the actual testers who need to carry out the detailed tasks at hand. UI Unit– usually done by the devs to cover unit level of a UI validation, field, text etc UI Component –usually written by testers to see how that component/area of the UI behaves usually by mocking out its dependent calls or API’s UI Integration (within the application itself)- usually written by testers to test how that new component behaves when integrated within the application at large. For example does a new field/element that is recently added to the application conflict with an already existing field or element- or just finding any weird general issue when this is merged to the greater individual application under test UI Integration (to APIs/Backend)- usually written by testers to test one of the most important aspects-bringing the Front end and back-end together. Passing on variables and composing a payload or xml to be sent to the API or Backend/webservices etc. API Unit-usually written by devs, where testers atleast have some visibility into coverage. Covering unit/s of an individual API composition API Component-usually written by testers with dev assistance and input. Consisting of mocking of dependencies, run independent of environmental related data. API Integration (to backend and/or other API’s)-usually written by testers. Consisting of actually calls to dependent APIs and/or downstream systems/dbs E2E UI- usually written by testers- light coverage to bring all of the above together and just provide re-assurance that all is in order- Run in a fully integrated non-mocked working environment
  3. DevOps requires automating the delivery of software from the developers machine (including the testers code) right to monitoring a release in production. This is done by the concepts of Continuous Integration (continuously integrating code and confirming QA at a Code level) – Continuous Deployment (continuously deploy code/packages/systems through environments as and when code is changed) – Continuous Testing (testing throughout the process via Automated tests (practises like TDD and BDD achieve this)