SlideShare a Scribd company logo
Making the Move to Behavior-
Driven Development
Kevin Dunne, VP of Business Development, QASymphony
AGENDA
• Understanding typical software development and testing challenges
• Introduce BDD methodologies
• Benefits of implementing test-first methodologies
• Review the state of test-first methodologies in industry
• Investigate keys for successful implementation BDD
• Q&A
Current Problems in
Software Dev & Test
Where We Came From
Traditional development cycles often model the Rational Unified Process:
Source: http://www.psa-software.com/_img/_knowledge_center/rup.jpg
The Broken Game of Telephone
Running the processes in parallel introduces the risk as the requirements get
handed off multiple times and customer expectations change with time:
Source: http://lh5.ggpht.com/_g0-GZzIBNms/SloJ3LOGy3I/AAAAAAAAAK0/FvyLacg_Q28/s800/conversations.pngg
The “Old Way” was the Best Way at the Time
We would have obviously chosen a more efficient process, but we were
constrained by many limitations, including:
Environment Creation Code Merges On-Premise Prevalence
Desktop Focus Lack of Collaboration Off-Shore Development
What’s Changed
Many of our prior limitations have been replaced, based on macro trends around
technology and industry:
Containers have simplified the process dramaticallyEnvironment Creation
Git has replaced Subversion as the industry standardCode Merges
Cloud adoption is at an all time high, increased securityOn-Premise Prevalence
Prevalence of Web, Mobile, Internet of thingsDesktop Focus
Increase in teamwork, chat and collaboration technologyLack of Collaboration
Shifts towards rural sourcing, onshoring of laborOff-Shore Development
Why QA Breaks Down in Agile
QA kept out of the loop
QA are unable to complete tests when
needed
Dev and QA working on different
cadences
Lack of visibibility or understanding into
when QA is “Done” with testing
Introducing Test-First
Methodologies
How the Process Has Adapted
Now that we have freed ourselves of past limitations, the process has been shifted
to one that aligns more with our needs:
Traditional Approach
Test-First Approach
Design Requirements Code Test Deploy
Design (Automated) Test Code Refactor Deploy
TDD vs. ATDD vs. BDD
Test-First methodologies were coined “Test Driven Development”. Less
technically focused versions called Acceptance Test Driven Development (ATDD)
and Behavior Driven Development (BDD) also emerged:
Test Driven Development
(TDD)
Behavior Driven Development (BDD)
Acceptance Test Driven Development
(ATDD)
Unit Test Driven Development
(“Technical TDD”)
What’s the Difference?
ATDD and BDD are similar in that they both try to make TDD more accessible to business users.
The major functional difference comes down to how the tests are structured:
"I think this definition leaves out a key piece, we are focusing on collaboration
and learning. Having worked on a project that was using 'ATDD', in 2005 I
think, we had the same goals then as BDD without the Given When Then
language.“
— Wes Williams
Pros and Cons
ATDD/BDD offer benefits over more Unit Focused/Technical TDD, but also has its
drawbacks:
Pros
• Increased understanding of tests from
business stakeholders
• Increased collaboration early in the cycle
• More focus on customer and business needs
• Higher involvement of business in
development and quality
Cons
• Addition of more tooling in the development/delivery
chain
• Greater time spent defining tests and specifications
• Demands stronger contributors in requirements, dev,
test
• Often increases the automation needs in an
organization
Typical BDD Planning Hierarchy
Sprint 1 Sprint 2 Sprint 3 Sprint 4
Epic: ATM Software
Story : Withdraw Cash Story : Check Balance
Acceptance Test: Overdraft
Epic: Online Banking Portal
User Stories Define the Discrete Units of Work
The user story is the “What” or the high
level ask the business has for the
development team
User Stories often still exist with BDD, as
a framework for adding scenarios. Some
companies would change User Stories to
being called features.
Example:
As a customer,
I want to withdraw cash from an ATM,
so that I don’t have to wait in line at the bank.
Source: https://dannorth.net/introducing-bdd/
Non-BDD – Define with Acceptance Criteria
Acceptance criteria are used to define the
User Story in a detailed manner
While acceptance criteria are easy to write,
they are often vague or incomplete
Additionally, users typically need to write
acceptance tests to validate the criteria pass
Example:
- Cash dispensed in less than 10 seconds
- Cash dispensed matches amount requested
by customer
- American express cards not accepted
- Overdrafted accounts rejected for withdrawal
The BDD Way - Acceptance Tests
Verify the work: Acceptance tests evaluate
the acceptance criteria using the “Given-
When-Then” format.
Example:
Scenario: Overdrawn accounts cannot withdraw
money
Given the account is overdrawn
And the card is valid
When the customer requests cash
Then ensure a rejection message is displayed
And ensure cash is not dispensed
And ensure the card is returned
Source: https://dannorth.net/introducing-bdd/
Benefits of Test-First
Approaches
How Can TDD Help Us?
Test Driven Development brings several major benefits to organization,
most notably:
1. Move Testing Up Front – prevents having to rush testing at the end of the cycle
2. Bake in Automation from Day 1 – protects against getting behind with test and automation
coverage
3. Build More Testable Software – requires developers to think about testability, and create
more robust software
4. Push to Customers When Ready – allows you to push software to customers just in time, as
it is developed
Move Testing Up Front
Moving Testing Up Front removes the risk of having to make compromises at the end of the cycle on quality
or on-time delivery:
Traditional Development Timeline
Ends on: Day 1 Day 3 Day 14 Day 20 Day 21
Design Requirements Code Test Deploy
There is risk in this process that any process, typically Code, will run over and either squeeze
development, or push release dates. TDD removes it!
Defect Costs Increase as Code Matures
0
20
40
60
80
100
120
Design Implementation Testing Maintenance
Phase/Stage of the S/W Development in Which the Defect is Found
Cost of Resolving Defect
Bake in Automation Up Front
In traditional development, automation is often built after the code is developed, which has significant
limitations:
Test development is more costly, since we cannot access the code to make it more testable (more details to
come)
Tests are slower and more brittle, with higher levels of maintenance, if we can only access the UI
Test coverage is incomplete, as we must chose strategically where to build out automation coverage
Moving to TDD flips the process and forces developers to write code to satisfy tests, increasing automation
coverage, speed, and reducing cost
Build for Testability
Source: http://zeroturnaround.com/wp-content/uploads/2015/12/PUZZLE-1-min.png
Moving towards BDD will force your
developers to build an application that
can be tested well at the Unit,
Integration, and UI levels:
UI Tests
Integration Tests
Unit Tests
Building a Complete Testing Strategy
Moving towards BDD will also demand a more complete testing strategy focused
on more than just UI testing:
UI Tests
Integration Tests
Unit Tests
Push Features When They Are Complete
TDD paired with continuous delivery will allow you to push features as they
become ready, if you’d like to:
Old Way
New Way
Code Feature A
Code Feature B
Code Feature C
Test Deploy
Wait
Wait
Code Feature A
Code Feature B
Code Feature C
Write
Tests
Deploy
Deploy
Deploy
State of Test-First in
Industry
State of Test First – Respondent Overview
Most respondents are yet to implement TDD, or just getting started
Learning the Ropes Online
Most people are learning about TDD online, due to lack of good in-person content!
Struggling for Developer Buy-In
The biggest stumbling block continues to be getting developers to write tests
Transition to Agile First, Then TDD
Most organizations move to TDD after mastering Scrum/Kanban Agile approach
How Teams are Doing
BDD
Scope •Define user
story
Define
Tests
•Write
Acceptance
Tests
Code
Features
Build •Build the
latest code
Run
Tests
•Execute
acceptance
tests
Tools Our Customers Are Using
IF PASSED:
Report results
back to User
Story
OR
Refactor
IF FAILED:
Change Code
Benefits to the Organization
Increased team collaboration and morale
Expanded test coverage
Reduced time to execute or maintain regression
Enhanced reusability of testing assets
Organization wide interest in quality
Implementation Models
There are different implementation models with different pros and cons:
Train the Trainer Phased Rollout Big Bang
Dev Dev Dev
QA PO Ops
SMTeam A
Dev Dev Dev
QA PO Ops
SMTeam A
Dev Dev Dev
QA PO Ops
SMTeam A
Dev Dev Dev
QA PO Ops
SMTeam A
Dev Dev Dev
QA PO Ops
SMTeam A
Dev Dev Dev
QA PO Ops
SMTeam A
Increased Risk, Increased Reward
Keys To Success
• Be patient, success will take time
• Do a real assessment of talent BEFORE you embark on a journey towards BDD
• Identify one or multiple champions with strong personalities and rapport
• Define success criteria using metrics that matter to you
• Start smaller where risks are minimized
• Don’t be afraid to ask for help and seek guidance online or from in person consultants
Q&A
THANK YOU
Kevin Dunne
kevindunne@qasymphony.com
www.qasymphony.com

More Related Content

What's hot (20)

PPT
Automated Web Testing Using Selenium
Weifeng Zhang
 
DOCX
QA Test Status Report Template
Price Charlot
 
PDF
Security Process in DevSecOps
Opsta
 
PPTX
Cypress Automation
Susantha Pathirana
 
PDF
Apache Camel - The integration library
Claus Ibsen
 
PDF
Introduction to Acceptance Test Driven Development
Elisabeth Hendrickson
 
PPTX
SonarQube - Como avaliar seus fornecedores e garantir a qualidade de suas ent...
Igor Rosa Macedo
 
PPTX
Testing Services
QA Programmer
 
PPTX
Introduction to MuleSoft
Alexandra N. Martinez
 
PPTX
DevOps to DevSecOps Journey..
Siddharth Joshi
 
PPTX
How to Get Started with DevSecOps
CYBRIC
 
PDF
Jenkins with SonarQube
Somkiat Puisungnoen
 
PPTX
Automation test framework with cucumber – BDD
123abcda
 
PDF
An introduction to Behavior-Driven Development (BDD)
Suman Guha
 
PPTX
QA Challenge Accepted 4.0 - Cypress vs. Selenium
Lyudmil Latinov
 
PDF
Shift Left Testing: Going Beyond Agile
TechWell
 
DOC
Anjali gupta resume
ANJALI GUPTA
 
PPTX
SonarQube Presentation.pptx
Satwik Bhupathi Raju
 
PPTX
DevOps
Gehad Elsayed
 
Automated Web Testing Using Selenium
Weifeng Zhang
 
QA Test Status Report Template
Price Charlot
 
Security Process in DevSecOps
Opsta
 
Cypress Automation
Susantha Pathirana
 
Apache Camel - The integration library
Claus Ibsen
 
Introduction to Acceptance Test Driven Development
Elisabeth Hendrickson
 
SonarQube - Como avaliar seus fornecedores e garantir a qualidade de suas ent...
Igor Rosa Macedo
 
Testing Services
QA Programmer
 
Introduction to MuleSoft
Alexandra N. Martinez
 
DevOps to DevSecOps Journey..
Siddharth Joshi
 
How to Get Started with DevSecOps
CYBRIC
 
Jenkins with SonarQube
Somkiat Puisungnoen
 
Automation test framework with cucumber – BDD
123abcda
 
An introduction to Behavior-Driven Development (BDD)
Suman Guha
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
Lyudmil Latinov
 
Shift Left Testing: Going Beyond Agile
TechWell
 
Anjali gupta resume
ANJALI GUPTA
 
SonarQube Presentation.pptx
Satwik Bhupathi Raju
 

Viewers also liked (20)

PPTX
Agile Testing Analytics
QASymphony
 
PPTX
Automated agile testing using Cucumber
Naveen Kumar Singh
 
PPTX
Behaviour driven development aka bdd
Prince Gupta
 
PPTX
Quality Jam 2016: Scott Berkun "The Myth of Innovation"
QASymphony
 
PPTX
Hiring Professional Testers - QASymphony Webinar
QASymphony
 
PPTX
Test Automation Framework with BDD and Cucumber
Rhoynar Software Consulting
 
PPTX
Making the Transition from Tester to Leader
QASymphony
 
PPTX
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...
QASymphony
 
PPTX
Closing the Requirements and Testing Loop Webinar
QASymphony
 
PPTX
Thinking Beyond HPQC ALM
QASymphony
 
PPTX
Test Estimation Hacks: Tips, Tricks and Tools Webinar
QASymphony
 
PPTX
Evolve or Die: Healthcare IT Testing | QASymphony Webinar
QASymphony
 
PPTX
BDD - beyond: Given, When and Then
RiverGlide
 
PPTX
Exploratory Testing with JIRA | QASymphony Webinar
QASymphony
 
PPTX
Using JIRA for Risk Based Testing - QASymphony Webinar
QASymphony
 
PPTX
Quality Jam 2016 Product Roadmap
QASymphony
 
PPTX
Quality Jam: BDD, TDD and ATDD for the Enterprise
QASymphony
 
PPTX
Software Testing Metrics with qTest Insights - QASymphony Webinar
QASymphony
 
PDF
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore
 
PPTX
Introduction to bdd
antannatna
 
Agile Testing Analytics
QASymphony
 
Automated agile testing using Cucumber
Naveen Kumar Singh
 
Behaviour driven development aka bdd
Prince Gupta
 
Quality Jam 2016: Scott Berkun "The Myth of Innovation"
QASymphony
 
Hiring Professional Testers - QASymphony Webinar
QASymphony
 
Test Automation Framework with BDD and Cucumber
Rhoynar Software Consulting
 
Making the Transition from Tester to Leader
QASymphony
 
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...
QASymphony
 
Closing the Requirements and Testing Loop Webinar
QASymphony
 
Thinking Beyond HPQC ALM
QASymphony
 
Test Estimation Hacks: Tips, Tricks and Tools Webinar
QASymphony
 
Evolve or Die: Healthcare IT Testing | QASymphony Webinar
QASymphony
 
BDD - beyond: Given, When and Then
RiverGlide
 
Exploratory Testing with JIRA | QASymphony Webinar
QASymphony
 
Using JIRA for Risk Based Testing - QASymphony Webinar
QASymphony
 
Quality Jam 2016 Product Roadmap
QASymphony
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
QASymphony
 
Software Testing Metrics with qTest Insights - QASymphony Webinar
QASymphony
 
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore
 
Introduction to bdd
antannatna
 
Ad

Similar to Making the Move to Behavior Driven Development (20)

PDF
Making the Move to Behavior-Driven Development
TechWell
 
PDF
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Perfecto Mobile
 
PDF
How BDD enables True CI/CD
Roger Turnau
 
PPTX
Gateway to Agile: XP and BDD
Gervais Johnson, Advisor
 
PPTX
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Synerzip
 
PDF
Scaling Test first for the Enterprise
QASymphony
 
PDF
TDD vs BDD_ Which Development Approach is Best for Your Project.pdf
Steve Wortham
 
PDF
TDD vs. BDD: A Practical Comparison for Modern Development Teams
Shubham Joshi
 
PDF
It's Testing, Jim, but not as we know it - BDD for Testers
John Ferguson Smart Limited
 
PDF
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Katy Slemon
 
PDF
Behavior Driven Development—A Guide to Agile Practices
TechWell
 
ODP
Moving to tdd bdd
Kim Carter
 
PDF
Whole team approach to agile testing bdd can help better pune 15th meetup
Agile Testing Alliance
 
PDF
Intro to TDD & BDD
devObjective
 
PDF
ITB2015 - Behavior Driven Development, Automation and Continuous Integration
Ortus Solutions, Corp
 
PDF
2015 in tothebox-introtddbdd
ColdFusionConference
 
PPTX
Behavior Driven Development
Adam Englander
 
PPTX
Tdd and bdd
MohamedSubhiBouchi
 
PPTX
Journey of atdd
Devesh Maheshwari
 
PPTX
Test-driven development & Behavior-driven development basics
Oleksii Prohonnyi
 
Making the Move to Behavior-Driven Development
TechWell
 
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Perfecto Mobile
 
How BDD enables True CI/CD
Roger Turnau
 
Gateway to Agile: XP and BDD
Gervais Johnson, Advisor
 
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Synerzip
 
Scaling Test first for the Enterprise
QASymphony
 
TDD vs BDD_ Which Development Approach is Best for Your Project.pdf
Steve Wortham
 
TDD vs. BDD: A Practical Comparison for Modern Development Teams
Shubham Joshi
 
It's Testing, Jim, but not as we know it - BDD for Testers
John Ferguson Smart Limited
 
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Katy Slemon
 
Behavior Driven Development—A Guide to Agile Practices
TechWell
 
Moving to tdd bdd
Kim Carter
 
Whole team approach to agile testing bdd can help better pune 15th meetup
Agile Testing Alliance
 
Intro to TDD & BDD
devObjective
 
ITB2015 - Behavior Driven Development, Automation and Continuous Integration
Ortus Solutions, Corp
 
2015 in tothebox-introtddbdd
ColdFusionConference
 
Behavior Driven Development
Adam Englander
 
Tdd and bdd
MohamedSubhiBouchi
 
Journey of atdd
Devesh Maheshwari
 
Test-driven development & Behavior-driven development basics
Oleksii Prohonnyi
 
Ad

More from QASymphony (20)

PDF
Saying Goodbye to Quality Center
QASymphony
 
PPTX
Building Better Collaboration Between Development and Testing in a DevOps World
QASymphony
 
PPTX
QASymphony Atlanta Customer User Group Fall 2017
QASymphony
 
PPTX
Manual Testing is Dead. Long Live Manual Testing
QASymphony
 
PPTX
Knowing Where to Tap
QASymphony
 
PPTX
Moving QA from Reactive to Proactive with qTest
QASymphony
 
PPTX
Debugging Your Testing Team
QASymphony
 
PPTX
Succeeding as an Introvert
QASymphony
 
PPTX
TUI & qTest: Why, How and Where Next
QASymphony
 
PPTX
Diving into the World of Test Automation The Approach and the Technologies
QASymphony
 
PPTX
Modernizing Your Testing Tools
QASymphony
 
PPTX
RESTful API Testing using Postman, Newman, and Jenkins
QASymphony
 
PPTX
Whitebox Testing for Blackbox Testers: Simplifying API Testing
QASymphony
 
PPTX
Kick-Starting BDD for Your Organization
QASymphony
 
PPTX
BizDevOps – Delivering Business Value Quickly at Scale
QASymphony
 
PPTX
Making the Switch from HP Quality Center to qTest
QASymphony
 
PDF
Quality Jam 2017: Sheekha Singh "Millennials & Testing"
QASymphony
 
PDF
Quality Jam 2017: Jesse Reed & Kyle McMeekin "Test Case Management & Explorat...
QASymphony
 
PDF
Quality Jam 2017: Paul Merrill "Machine Learning & How it Affects Testers"
QASymphony
 
PDF
Quality Jam 2017: Sheekha Singh "Millennials & Testing"
QASymphony
 
Saying Goodbye to Quality Center
QASymphony
 
Building Better Collaboration Between Development and Testing in a DevOps World
QASymphony
 
QASymphony Atlanta Customer User Group Fall 2017
QASymphony
 
Manual Testing is Dead. Long Live Manual Testing
QASymphony
 
Knowing Where to Tap
QASymphony
 
Moving QA from Reactive to Proactive with qTest
QASymphony
 
Debugging Your Testing Team
QASymphony
 
Succeeding as an Introvert
QASymphony
 
TUI & qTest: Why, How and Where Next
QASymphony
 
Diving into the World of Test Automation The Approach and the Technologies
QASymphony
 
Modernizing Your Testing Tools
QASymphony
 
RESTful API Testing using Postman, Newman, and Jenkins
QASymphony
 
Whitebox Testing for Blackbox Testers: Simplifying API Testing
QASymphony
 
Kick-Starting BDD for Your Organization
QASymphony
 
BizDevOps – Delivering Business Value Quickly at Scale
QASymphony
 
Making the Switch from HP Quality Center to qTest
QASymphony
 
Quality Jam 2017: Sheekha Singh "Millennials & Testing"
QASymphony
 
Quality Jam 2017: Jesse Reed & Kyle McMeekin "Test Case Management & Explorat...
QASymphony
 
Quality Jam 2017: Paul Merrill "Machine Learning & How it Affects Testers"
QASymphony
 
Quality Jam 2017: Sheekha Singh "Millennials & Testing"
QASymphony
 

Recently uploaded (20)

PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 

Making the Move to Behavior Driven Development

  • 1. Making the Move to Behavior- Driven Development Kevin Dunne, VP of Business Development, QASymphony
  • 2. AGENDA • Understanding typical software development and testing challenges • Introduce BDD methodologies • Benefits of implementing test-first methodologies • Review the state of test-first methodologies in industry • Investigate keys for successful implementation BDD • Q&A
  • 4. Where We Came From Traditional development cycles often model the Rational Unified Process: Source: http://www.psa-software.com/_img/_knowledge_center/rup.jpg
  • 5. The Broken Game of Telephone Running the processes in parallel introduces the risk as the requirements get handed off multiple times and customer expectations change with time: Source: http://lh5.ggpht.com/_g0-GZzIBNms/SloJ3LOGy3I/AAAAAAAAAK0/FvyLacg_Q28/s800/conversations.pngg
  • 6. The “Old Way” was the Best Way at the Time We would have obviously chosen a more efficient process, but we were constrained by many limitations, including: Environment Creation Code Merges On-Premise Prevalence Desktop Focus Lack of Collaboration Off-Shore Development
  • 7. What’s Changed Many of our prior limitations have been replaced, based on macro trends around technology and industry: Containers have simplified the process dramaticallyEnvironment Creation Git has replaced Subversion as the industry standardCode Merges Cloud adoption is at an all time high, increased securityOn-Premise Prevalence Prevalence of Web, Mobile, Internet of thingsDesktop Focus Increase in teamwork, chat and collaboration technologyLack of Collaboration Shifts towards rural sourcing, onshoring of laborOff-Shore Development
  • 8. Why QA Breaks Down in Agile QA kept out of the loop QA are unable to complete tests when needed Dev and QA working on different cadences Lack of visibibility or understanding into when QA is “Done” with testing
  • 10. How the Process Has Adapted Now that we have freed ourselves of past limitations, the process has been shifted to one that aligns more with our needs: Traditional Approach Test-First Approach Design Requirements Code Test Deploy Design (Automated) Test Code Refactor Deploy
  • 11. TDD vs. ATDD vs. BDD Test-First methodologies were coined “Test Driven Development”. Less technically focused versions called Acceptance Test Driven Development (ATDD) and Behavior Driven Development (BDD) also emerged: Test Driven Development (TDD) Behavior Driven Development (BDD) Acceptance Test Driven Development (ATDD) Unit Test Driven Development (“Technical TDD”)
  • 12. What’s the Difference? ATDD and BDD are similar in that they both try to make TDD more accessible to business users. The major functional difference comes down to how the tests are structured: "I think this definition leaves out a key piece, we are focusing on collaboration and learning. Having worked on a project that was using 'ATDD', in 2005 I think, we had the same goals then as BDD without the Given When Then language.“ — Wes Williams
  • 13. Pros and Cons ATDD/BDD offer benefits over more Unit Focused/Technical TDD, but also has its drawbacks: Pros • Increased understanding of tests from business stakeholders • Increased collaboration early in the cycle • More focus on customer and business needs • Higher involvement of business in development and quality Cons • Addition of more tooling in the development/delivery chain • Greater time spent defining tests and specifications • Demands stronger contributors in requirements, dev, test • Often increases the automation needs in an organization
  • 14. Typical BDD Planning Hierarchy Sprint 1 Sprint 2 Sprint 3 Sprint 4 Epic: ATM Software Story : Withdraw Cash Story : Check Balance Acceptance Test: Overdraft Epic: Online Banking Portal
  • 15. User Stories Define the Discrete Units of Work The user story is the “What” or the high level ask the business has for the development team User Stories often still exist with BDD, as a framework for adding scenarios. Some companies would change User Stories to being called features. Example: As a customer, I want to withdraw cash from an ATM, so that I don’t have to wait in line at the bank. Source: https://dannorth.net/introducing-bdd/
  • 16. Non-BDD – Define with Acceptance Criteria Acceptance criteria are used to define the User Story in a detailed manner While acceptance criteria are easy to write, they are often vague or incomplete Additionally, users typically need to write acceptance tests to validate the criteria pass Example: - Cash dispensed in less than 10 seconds - Cash dispensed matches amount requested by customer - American express cards not accepted - Overdrafted accounts rejected for withdrawal
  • 17. The BDD Way - Acceptance Tests Verify the work: Acceptance tests evaluate the acceptance criteria using the “Given- When-Then” format. Example: Scenario: Overdrawn accounts cannot withdraw money Given the account is overdrawn And the card is valid When the customer requests cash Then ensure a rejection message is displayed And ensure cash is not dispensed And ensure the card is returned Source: https://dannorth.net/introducing-bdd/
  • 19. How Can TDD Help Us? Test Driven Development brings several major benefits to organization, most notably: 1. Move Testing Up Front – prevents having to rush testing at the end of the cycle 2. Bake in Automation from Day 1 – protects against getting behind with test and automation coverage 3. Build More Testable Software – requires developers to think about testability, and create more robust software 4. Push to Customers When Ready – allows you to push software to customers just in time, as it is developed
  • 20. Move Testing Up Front Moving Testing Up Front removes the risk of having to make compromises at the end of the cycle on quality or on-time delivery: Traditional Development Timeline Ends on: Day 1 Day 3 Day 14 Day 20 Day 21 Design Requirements Code Test Deploy There is risk in this process that any process, typically Code, will run over and either squeeze development, or push release dates. TDD removes it!
  • 21. Defect Costs Increase as Code Matures 0 20 40 60 80 100 120 Design Implementation Testing Maintenance Phase/Stage of the S/W Development in Which the Defect is Found Cost of Resolving Defect
  • 22. Bake in Automation Up Front In traditional development, automation is often built after the code is developed, which has significant limitations: Test development is more costly, since we cannot access the code to make it more testable (more details to come) Tests are slower and more brittle, with higher levels of maintenance, if we can only access the UI Test coverage is incomplete, as we must chose strategically where to build out automation coverage Moving to TDD flips the process and forces developers to write code to satisfy tests, increasing automation coverage, speed, and reducing cost
  • 23. Build for Testability Source: http://zeroturnaround.com/wp-content/uploads/2015/12/PUZZLE-1-min.png Moving towards BDD will force your developers to build an application that can be tested well at the Unit, Integration, and UI levels:
  • 24. UI Tests Integration Tests Unit Tests Building a Complete Testing Strategy Moving towards BDD will also demand a more complete testing strategy focused on more than just UI testing: UI Tests Integration Tests Unit Tests
  • 25. Push Features When They Are Complete TDD paired with continuous delivery will allow you to push features as they become ready, if you’d like to: Old Way New Way Code Feature A Code Feature B Code Feature C Test Deploy Wait Wait Code Feature A Code Feature B Code Feature C Write Tests Deploy Deploy Deploy
  • 26. State of Test-First in Industry
  • 27. State of Test First – Respondent Overview Most respondents are yet to implement TDD, or just getting started
  • 28. Learning the Ropes Online Most people are learning about TDD online, due to lack of good in-person content!
  • 29. Struggling for Developer Buy-In The biggest stumbling block continues to be getting developers to write tests
  • 30. Transition to Agile First, Then TDD Most organizations move to TDD after mastering Scrum/Kanban Agile approach
  • 31. How Teams are Doing BDD
  • 32. Scope •Define user story Define Tests •Write Acceptance Tests Code Features Build •Build the latest code Run Tests •Execute acceptance tests Tools Our Customers Are Using IF PASSED: Report results back to User Story OR Refactor IF FAILED: Change Code
  • 33. Benefits to the Organization Increased team collaboration and morale Expanded test coverage Reduced time to execute or maintain regression Enhanced reusability of testing assets Organization wide interest in quality
  • 34. Implementation Models There are different implementation models with different pros and cons: Train the Trainer Phased Rollout Big Bang Dev Dev Dev QA PO Ops SMTeam A Dev Dev Dev QA PO Ops SMTeam A Dev Dev Dev QA PO Ops SMTeam A Dev Dev Dev QA PO Ops SMTeam A Dev Dev Dev QA PO Ops SMTeam A Dev Dev Dev QA PO Ops SMTeam A Increased Risk, Increased Reward
  • 35. Keys To Success • Be patient, success will take time • Do a real assessment of talent BEFORE you embark on a journey towards BDD • Identify one or multiple champions with strong personalities and rapport • Define success criteria using metrics that matter to you • Start smaller where risks are minimized • Don’t be afraid to ask for help and seek guidance online or from in person consultants
  • 36. Q&A