SlideShare une entreprise Scribd logo
1  sur  32
Myths and Challenges Behaviour
Driven Development
Practical Challenges and Overcoming Effectively
Pankaj Nakhat
pankaj@qagile.co.uk
#pnakhat
Agenda
• What is BDD Anyway?
• Why?
• Myths
• Deep Diving in to Challenges
• Discussion
BDD ?
• Short Definition
– “Behaviour‐driven development is about impleme
nting an application by describing its behaviour fro
m the perspective of its stakeholders” –
Dan North
What is BDD ?
• Behaviour Driven Development methodology
– http://en.wikipedia.org/wiki/Behavior_Driven_Development
– A Technique to Specify requirement
• Specification by example (Gozko Adzic)
• ATDD
• Methodology by which QA, BA and SMEs get involved early
in defining requirement through a common language.
• Specify the requirements in form of Given/When/Then/And
(Not mandated) – But widely accepted
• There is no loss/Distortion of love in BDD as same language
is used/shared among all the stakeholders in the project.
QAInfoLabs
Why BDD ?
• Defining requirements by example.
• Allows Business to Define Requirements in an
executable (Commonly Understood) format.
• Enhances collaboration between Technical and
Non technical team
• Behaviour of the system eventually becomes an
executable Acceptance test
• Allows team to focus on Behaviour aspects rather
then technical details
• Living Documentation
aaaa
BDD A Communication paradigm
BDD
QA
Dev
SME
BA
#Myths
#Myth : BDD is Cucumber or Cucumber is BDD ?
Infact its not about tool at all .
It is all about -- Communication
#Myth : BDD is a Testing framework /
Tool
• Keyword Driven framework
• Data driven framework
• Business Process Testing
• Replacement of Robot Framework in Selenium
These approaches focuses on reusability NOT on
Behaviours
Focus on test cases rather then requirement itself.
#Myth : BDD is a Testing Tool
If we Do BDD – We
can write tests in
English. Awesome!
Does it mean we should
start teaching English
Grammar to our
Employees ?
#Myth : BDD is not TDD
• BDD Focuses on behaviours
• TDD focuses on small unit of code
(Design)
• BDD Does not replace TDD
• BDD complements TDD
• BDD IS LIKE TDD IF…” BDD the same as TDD? Yes. If you’re a
programmer, and your entire team is programmers, and all your
stakeholders are programmers and you have a single Subject Matter
Expert embedded in the team. ” – Dan North
#Myth : BDD – Scenarios should be UI
Driven ?
• Behaviours != UI
• Focus on Behaviours, rather then how to
test behaviours.
• Sometimes UI is the last things you want to
develope, so relying on UI to test behaviours
is dangerous.
#Challenges : Getting Business
Involved ?
- Why would business buy the idea of writing
story/test/scenario/BDD ?
- If not should we use BDD then ?
BDD with Business
• Writing Given/When/Then is challenge for
business, however they can express the
requirements in conventional way.
• Sometimes trying to limit the language of
writing requirement limits the requirement
itself.
• What if business is not involved ?
An Interesting Interaction
#Challenge : Language Used in BDD
?/Abstraction
Scenario 1:
--------------------
Given a user navigates to registration page by clicking the link user registration
When user click on registration click
And user enter text in username : xyz
And user enters text in password : password
And user click on submit button
Then user gets redirected to confirmation page
And a message is shown “User Registered Successfully”
Scenario 2 :
----------------
Given I start the registration process
When I complete the registration process with valid credentials
Then I am registered successfully
Then user gets redirected to confirmation page
And a message is shown “User Registered”
Contd..
Given a user navigates to registration page by
clicking the link user registration
When user click on registration click
And user enter text in username : xyz
And user enters text in password : password
And user click on submit button
Registration
Process
Successfully
Registered
Navigation –
But how user is
not really
interested here
#Challenge : Implementation
• Abstraction is good but…
– It still relies on teams to do underlying
implementation as realistic as possible.
– DON’T DO THIS
– Or This…
#Challenges : Requirement Traceability
• How do you what is my test coverage against a
feature ?
Use tools to intelligently generate documentation for you/
Avoid one to one mapping of a story and a BDD feature file
Track your features not necessarily user story
• How to manage a change in requirement.
 Maintain metadata of story/Acceptance criteria against Scenarios
Use story maps
Use Tagging
Engage all the stakeholders in the process
#Challenge : Forgotten Art of
Automation Testing
Taken original from : http://blogs.agilefaqs.com/2011/02/01/inverting-
the-testing-pyramid/
Taken original from : http://blogs.agilefaqs.com/2011/02/01/inverting-
the-testing-pyramid/
#Challenges : Code Refactoring ?
- Its Easy to manage changes in unit tests when
the code is changed ?
#Challenge : Refactoring
- How to manage failing tests post refactoring or code
change ?
- Start TOP down and asses the change in behaviour
first.
- Failing Behaviours are feedback, welcome them.
- As a developer, Liaise with BA/QA/SMEs on failing
tests and don’t assume things, even though it may
sound trivial.
#Challenge : Slow running and “Flaky
Tests”
• Avoid One to One mapping of User Story and
BDD Test files
• Rather Map features with the tests
• Always keep the intent of the test clear and
use the right language of abstraction.
• Keep refactoring the BDD scenarios and if
needed create user journeys from multiple
scenarios.
• Avoid Testing everything through GUI.
Contd.. Slow running and “Flaky Tests”
• Avoid setups from GUI based tests, rather use
API or Database scripts.
• Find overlapping scenarios, and avoid testing a
thing in multiple scenarios.
• Refactor/Add/Delete and Clean Scenarios as
on-going process.
• Don’t keep unused scenarios in source
control, understand its living documentation.
Other Usage Of BDD
NFR Using BDD
- Use BDD to specify Performance, Security and Usability Tests
- Allows business to specify and measure the non functional
requirements .
- Allows frequent feedback on NFR
Given there are 10000 trades in system
When trades are processed
Then trades should be processed within 5 seconds.
Exploratory Testing
• BDD scenarios can be used for manual
exploratory testing.
• Can be used for
– Setting up data
– Setting a context automatically to a point
• Allows business to easily execute the
scenarios and give feedback regularly.
Demo Using BDDs
• Use the executable acceptance criteria's to
showcase features
• Benefits
– Setting context using Given/When/Then
Scenarios, which business is already familiar with
– No manual efforts setting up data etc
– Confidence with stakeholders as they can see
scenarios being executed
Lets Talk!

Contenu connexe

Tendances

Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkinArati Joshi
 
Successfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile WorldSuccessfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile WorldSmartBear
 
Prd Product Requirements Document
Prd Product Requirements DocumentPrd Product Requirements Document
Prd Product Requirements DocumentMohammad Mohammadi
 
Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Devathon
 
How to Execute a Successful API Strategy
How to Execute a Successful API StrategyHow to Execute a Successful API Strategy
How to Execute a Successful API StrategyMatt McLarty
 
Product Requirement Document(PRD)
Product Requirement Document(PRD)Product Requirement Document(PRD)
Product Requirement Document(PRD)anand ayush
 
Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDDKnoldus Inc.
 
API Test Automation
API Test Automation API Test Automation
API Test Automation SQALab
 
Automate REST API Testing
Automate REST API TestingAutomate REST API Testing
Automate REST API TestingTechWell
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)Rohit Bisht
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven DesignAndriy Buday
 
Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With AppiumKnoldus Inc.
 
Designing APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignLaunchAny
 
PRD Template for Product Managers
PRD Template for Product ManagersPRD Template for Product Managers
PRD Template for Product ManagersUjjwal Trivedi
 

Tendances (20)

Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkin
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Successfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile WorldSuccessfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile World
 
Bff and GraphQL
Bff and GraphQLBff and GraphQL
Bff and GraphQL
 
Cucumber presenation
Cucumber presenationCucumber presenation
Cucumber presenation
 
Prd Product Requirements Document
Prd Product Requirements DocumentPrd Product Requirements Document
Prd Product Requirements Document
 
Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?
 
How to Execute a Successful API Strategy
How to Execute a Successful API StrategyHow to Execute a Successful API Strategy
How to Execute a Successful API Strategy
 
Product Requirement Document(PRD)
Product Requirement Document(PRD)Product Requirement Document(PRD)
Product Requirement Document(PRD)
 
Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDD
 
API Test Automation
API Test Automation API Test Automation
API Test Automation
 
Automate REST API Testing
Automate REST API TestingAutomate REST API Testing
Automate REST API Testing
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
 
Designing APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven Design
 
PRD Template for Product Managers
PRD Template for Product ManagersPRD Template for Product Managers
PRD Template for Product Managers
 
Cucumber & gherkin language
Cucumber & gherkin languageCucumber & gherkin language
Cucumber & gherkin language
 
Bdd Introduction
Bdd IntroductionBdd Introduction
Bdd Introduction
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 

Similaire à Myths and Challenges of Behaviour Driven Development

Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Synerzip
 
Approaching ATDD/BDD
Approaching ATDD/BDDApproaching ATDD/BDD
Approaching ATDD/BDDDhaval Dalal
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia eventXebia India
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionHoa Le
 
Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Sakares Saengkaew
 
German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...Bastian Seehaus
 
BDD - Collaboration & Hands-on practices
BDD - Collaboration & Hands-on practicesBDD - Collaboration & Hands-on practices
BDD - Collaboration & Hands-on practicesMagenTys
 
BDD presentation
BDD presentationBDD presentation
BDD presentationtemebele
 
BEHAVIOR-DRIVEN-DEVELOPMENT.pptx
BEHAVIOR-DRIVEN-DEVELOPMENT.pptxBEHAVIOR-DRIVEN-DEVELOPMENT.pptx
BEHAVIOR-DRIVEN-DEVELOPMENT.pptxCharleneMaedeleon2
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven DevelopmentMike Douglas
 
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore
 
Design your tests to behave - An introduction To BDD!
Design your tests to behave - An introduction To BDD!Design your tests to behave - An introduction To BDD!
Design your tests to behave - An introduction To BDD!Aparna A Gopalakrishnan
 
Understanding Why Testing is Importaint
Understanding Why Testing is ImportaintUnderstanding Why Testing is Importaint
Understanding Why Testing is ImportaintSana Nasar
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentAdam Englander
 
Bahaviour Driven Development
Bahaviour Driven DevelopmentBahaviour Driven Development
Bahaviour Driven Developmentbuildmaster
 
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
 

Similaire à Myths and Challenges of Behaviour Driven Development (20)

Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
 
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
 
BDD - Collaboration for Continuous Delivery
BDD - Collaboration for Continuous DeliveryBDD - Collaboration for Continuous Delivery
BDD - Collaboration for Continuous Delivery
 
Approaching ATDD/BDD
Approaching ATDD/BDDApproaching ATDD/BDD
Approaching ATDD/BDD
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolution
 
Tdd and bdd
Tdd and bddTdd and bdd
Tdd and bdd
 
Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd
 
German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...
 
BDD - Collaboration & Hands-on practices
BDD - Collaboration & Hands-on practicesBDD - Collaboration & Hands-on practices
BDD - Collaboration & Hands-on practices
 
Bdd in action
Bdd in actionBdd in action
Bdd in action
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
BEHAVIOR-DRIVEN-DEVELOPMENT.pptx
BEHAVIOR-DRIVEN-DEVELOPMENT.pptxBEHAVIOR-DRIVEN-DEVELOPMENT.pptx
BEHAVIOR-DRIVEN-DEVELOPMENT.pptx
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
 
Design your tests to behave - An introduction To BDD!
Design your tests to behave - An introduction To BDD!Design your tests to behave - An introduction To BDD!
Design your tests to behave - An introduction To BDD!
 
Understanding Why Testing is Importaint
Understanding Why Testing is ImportaintUnderstanding Why Testing is Importaint
Understanding Why Testing is Importaint
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
Bahaviour Driven Development
Bahaviour Driven DevelopmentBahaviour Driven Development
Bahaviour Driven Development
 
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
 

Dernier

Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
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
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 

Dernier (20)

Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
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
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 

Myths and Challenges of Behaviour Driven Development

  • 1. Myths and Challenges Behaviour Driven Development Practical Challenges and Overcoming Effectively Pankaj Nakhat pankaj@qagile.co.uk #pnakhat
  • 2. Agenda • What is BDD Anyway? • Why? • Myths • Deep Diving in to Challenges • Discussion
  • 3. BDD ? • Short Definition – “Behaviour‐driven development is about impleme nting an application by describing its behaviour fro m the perspective of its stakeholders” – Dan North
  • 4. What is BDD ? • Behaviour Driven Development methodology – http://en.wikipedia.org/wiki/Behavior_Driven_Development – A Technique to Specify requirement • Specification by example (Gozko Adzic) • ATDD • Methodology by which QA, BA and SMEs get involved early in defining requirement through a common language. • Specify the requirements in form of Given/When/Then/And (Not mandated) – But widely accepted • There is no loss/Distortion of love in BDD as same language is used/shared among all the stakeholders in the project. QAInfoLabs
  • 5. Why BDD ? • Defining requirements by example. • Allows Business to Define Requirements in an executable (Commonly Understood) format. • Enhances collaboration between Technical and Non technical team • Behaviour of the system eventually becomes an executable Acceptance test • Allows team to focus on Behaviour aspects rather then technical details • Living Documentation aaaa
  • 6. BDD A Communication paradigm BDD QA Dev SME BA
  • 8. #Myth : BDD is Cucumber or Cucumber is BDD ?
  • 9. Infact its not about tool at all . It is all about -- Communication
  • 10. #Myth : BDD is a Testing framework / Tool • Keyword Driven framework • Data driven framework • Business Process Testing • Replacement of Robot Framework in Selenium These approaches focuses on reusability NOT on Behaviours Focus on test cases rather then requirement itself.
  • 11.
  • 12. #Myth : BDD is a Testing Tool If we Do BDD – We can write tests in English. Awesome! Does it mean we should start teaching English Grammar to our Employees ?
  • 13. #Myth : BDD is not TDD • BDD Focuses on behaviours • TDD focuses on small unit of code (Design) • BDD Does not replace TDD • BDD complements TDD • BDD IS LIKE TDD IF…” BDD the same as TDD? Yes. If you’re a programmer, and your entire team is programmers, and all your stakeholders are programmers and you have a single Subject Matter Expert embedded in the team. ” – Dan North
  • 14. #Myth : BDD – Scenarios should be UI Driven ? • Behaviours != UI • Focus on Behaviours, rather then how to test behaviours. • Sometimes UI is the last things you want to develope, so relying on UI to test behaviours is dangerous.
  • 15. #Challenges : Getting Business Involved ? - Why would business buy the idea of writing story/test/scenario/BDD ? - If not should we use BDD then ?
  • 16. BDD with Business • Writing Given/When/Then is challenge for business, however they can express the requirements in conventional way. • Sometimes trying to limit the language of writing requirement limits the requirement itself. • What if business is not involved ?
  • 18. #Challenge : Language Used in BDD ?/Abstraction Scenario 1: -------------------- Given a user navigates to registration page by clicking the link user registration When user click on registration click And user enter text in username : xyz And user enters text in password : password And user click on submit button Then user gets redirected to confirmation page And a message is shown “User Registered Successfully” Scenario 2 : ---------------- Given I start the registration process When I complete the registration process with valid credentials Then I am registered successfully
  • 19. Then user gets redirected to confirmation page And a message is shown “User Registered” Contd.. Given a user navigates to registration page by clicking the link user registration When user click on registration click And user enter text in username : xyz And user enters text in password : password And user click on submit button Registration Process Successfully Registered Navigation – But how user is not really interested here
  • 20. #Challenge : Implementation • Abstraction is good but… – It still relies on teams to do underlying implementation as realistic as possible. – DON’T DO THIS – Or This…
  • 21. #Challenges : Requirement Traceability • How do you what is my test coverage against a feature ? Use tools to intelligently generate documentation for you/ Avoid one to one mapping of a story and a BDD feature file Track your features not necessarily user story • How to manage a change in requirement.  Maintain metadata of story/Acceptance criteria against Scenarios Use story maps Use Tagging Engage all the stakeholders in the process
  • 22. #Challenge : Forgotten Art of Automation Testing Taken original from : http://blogs.agilefaqs.com/2011/02/01/inverting- the-testing-pyramid/
  • 23. Taken original from : http://blogs.agilefaqs.com/2011/02/01/inverting- the-testing-pyramid/
  • 24. #Challenges : Code Refactoring ? - Its Easy to manage changes in unit tests when the code is changed ?
  • 25. #Challenge : Refactoring - How to manage failing tests post refactoring or code change ? - Start TOP down and asses the change in behaviour first. - Failing Behaviours are feedback, welcome them. - As a developer, Liaise with BA/QA/SMEs on failing tests and don’t assume things, even though it may sound trivial.
  • 26. #Challenge : Slow running and “Flaky Tests” • Avoid One to One mapping of User Story and BDD Test files • Rather Map features with the tests • Always keep the intent of the test clear and use the right language of abstraction. • Keep refactoring the BDD scenarios and if needed create user journeys from multiple scenarios. • Avoid Testing everything through GUI.
  • 27. Contd.. Slow running and “Flaky Tests” • Avoid setups from GUI based tests, rather use API or Database scripts. • Find overlapping scenarios, and avoid testing a thing in multiple scenarios. • Refactor/Add/Delete and Clean Scenarios as on-going process. • Don’t keep unused scenarios in source control, understand its living documentation.
  • 29. NFR Using BDD - Use BDD to specify Performance, Security and Usability Tests - Allows business to specify and measure the non functional requirements . - Allows frequent feedback on NFR Given there are 10000 trades in system When trades are processed Then trades should be processed within 5 seconds.
  • 30. Exploratory Testing • BDD scenarios can be used for manual exploratory testing. • Can be used for – Setting up data – Setting a context automatically to a point • Allows business to easily execute the scenarios and give feedback regularly.
  • 31. Demo Using BDDs • Use the executable acceptance criteria's to showcase features • Benefits – Setting context using Given/When/Then Scenarios, which business is already familiar with – No manual efforts setting up data etc – Confidence with stakeholders as they can see scenarios being executed