SlideShare a Scribd company logo
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!

More Related Content

What's hot

JPA and Hibernate
JPA and HibernateJPA and Hibernate
JPA and Hibernateelliando dias
 
Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)
Chris Richardson
 
Messaging in CQRS with MassTransit
Messaging in CQRS with MassTransitMessaging in CQRS with MassTransit
Messaging in CQRS with MassTransit
George Tourkas
 
Django class based views for beginners
Django class based views for beginnersDjango class based views for beginners
Django class based views for beginners
Spin Lai
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
harinderpisces
 
Cucumber BDD
Cucumber BDDCucumber BDD
Cucumber BDD
Pravin Dsilva
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
Vladimir Arutin
 
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
SangIn Choung
 
Tdd and bdd
Tdd and bddTdd and bdd
Tdd and bdd
MohamedSubhiBouchi
 
BDD - Writing better scenario
BDD - Writing better scenarioBDD - Writing better scenario
BDD - Writing better scenario
Arnauld Loyer
 
Publish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event AggregatorPublish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event Aggregator
Lars-Erik Kindblad
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
Knoldus Inc.
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
Bo-Yi Wu
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
NAVER D2
 
Doing REST Right
Doing REST RightDoing REST Right
Doing REST Right
Kerry Buckley
 
ATDD Using Robot Framework
ATDD Using Robot FrameworkATDD Using Robot Framework
ATDD Using Robot Framework
Pekka Klärck
 
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
SmartBear
 
Gherkin /BDD intro
Gherkin /BDD introGherkin /BDD intro
Cucumber presentation
Cucumber presentationCucumber presentation
Cucumber presentation
Akhila B
 
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroDomain Driven Design: Zero to Hero
Domain Driven Design: Zero to Hero
FabrĂ­cio Rissetto
 

What's hot (20)

JPA and Hibernate
JPA and HibernateJPA and Hibernate
JPA and Hibernate
 
Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)
 
Messaging in CQRS with MassTransit
Messaging in CQRS with MassTransitMessaging in CQRS with MassTransit
Messaging in CQRS with MassTransit
 
Django class based views for beginners
Django class based views for beginnersDjango class based views for beginners
Django class based views for beginners
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
Cucumber BDD
Cucumber BDDCucumber BDD
Cucumber BDD
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
 
Tdd and bdd
Tdd and bddTdd and bdd
Tdd and bdd
 
BDD - Writing better scenario
BDD - Writing better scenarioBDD - Writing better scenario
BDD - Writing better scenario
 
Publish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event AggregatorPublish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event Aggregator
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
Doing REST Right
Doing REST RightDoing REST Right
Doing REST Right
 
ATDD Using Robot Framework
ATDD Using Robot FrameworkATDD Using Robot Framework
ATDD Using Robot Framework
 
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
 
Gherkin /BDD intro
Gherkin /BDD introGherkin /BDD intro
Gherkin /BDD intro
 
Cucumber presentation
Cucumber presentationCucumber presentation
Cucumber presentation
 
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroDomain Driven Design: Zero to Hero
Domain Driven Design: Zero to Hero
 

Similar to Myths and Challenges of Behaviour Driven Development

Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
Gervais Johnson, Advisor
 
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
 
BDD - Collaboration for Continuous Delivery
BDD - Collaboration for Continuous DeliveryBDD - Collaboration for Continuous Delivery
BDD - Collaboration for Continuous Delivery
Kostas Mamalis (CSM CSPO)
 
Approaching ATDD/BDD
Approaching ATDD/BDDApproaching ATDD/BDD
Approaching ATDD/BDD
Dhaval 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 event
Xebia India
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolution
Hoa 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 practices
MagenTys
 
Bdd in action
Bdd in actionBdd in action
Bdd in action
Kien Nguyen
 
BEHAVIOR-DRIVEN-DEVELOPMENT.pptx
BEHAVIOR-DRIVEN-DEVELOPMENT.pptxBEHAVIOR-DRIVEN-DEVELOPMENT.pptx
BEHAVIOR-DRIVEN-DEVELOPMENT.pptx
CharleneMaedeleon2
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
Mike 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 Importaint
Sana Nasar
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
Adam Englander
 
Bahaviour Driven Development
Bahaviour Driven DevelopmentBahaviour Driven Development
Bahaviour Driven Development
buildmaster
 
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
QA or the Highway
 
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Agile Testing Alliance
 
Behavior Driven Development - WPC 2011
Behavior Driven Development - WPC 2011Behavior Driven Development - WPC 2011
Behavior Driven Development - WPC 2011
Fabio Armani
 

Similar to 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
 
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
 
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
 
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
 
Behavior Driven Development - WPC 2011
Behavior Driven Development - WPC 2011Behavior Driven Development - WPC 2011
Behavior Driven Development - WPC 2011
 

Recently uploaded

Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 

Recently uploaded (20)

Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 

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