SlideShare a Scribd company logo
1 of 32
Download to read offline
Behaviour Driven Development
Only an effective way to collaborate among three
amigos
Testing is just a by-product
Vinay Krishna
vinaykris@gmail.com
http://in.linkedin.com/in/vinaykrishna
6/10/2015 1
Introduction
• Often software development results surprises
at the end
– The business being unable to define the desired
outcomes
– Ambiguity in the developer’s and tester’s
understanding of what needs to be built
– The business not able to understand the technical
challenges or unable to look at tester’s view on
the requirement
6/10/2015 2
Introduction
• Three roles, three steps (document
specification, write code; develop the app,
write test plan; test the app)
• Three specs and three different lifecycles
– Mostly we maintain three different versions of
system’s need and many times find conflict among
them
• Functional Specification document
• Source Code
• Test case and test plan document
6/10/2015 3
Introduction
• Is it Bug?
• Is it Feature?
• No, it is Beature – Blame game
6/10/2015 4
Introduction
• Why beature?
– Misunderstanding at all level
– Lack of effective communication
– Difficulty in communication
– Lots of assumptions
6/10/2015 5
Group Activity
• To understand the importance of
communication
• To understand the challenge in
communication
6/10/2015 6
Discuss
• Imagine we have been given a task to add an
‘include VAT and delivery cost to the total price of
the customer basket’ feature to an existing
eCommerce project with following set of business
rules:
– VAT is 20%
– Delivery cost for small basket (less than £20) is £3
– Delivery cost for medium basket (more than £20) is £2
• Can you use this information to deliver a working
feature?
6/10/2015 7
Discuss
• These rules do not specify whether to add VAT
before delivery cost to the basket total or
after.
• How should you handle a situation where the
basket delivery cost is exactly £20?
• What happens if there are multiple products
in the basket?
6/10/2015 8
BAs Testers
Developers
6/10/2015 9
What is BDD?
6/10/2015 10
What is BDD
• Exploring the unknown
• Sharing and understanding
• Individuals and interactions over processes
and tools
6/10/2015 11
Introduction
• Behavior Driven Development
– Describes what business wants the system to do
by talking through example behavior.
– Work from the outside-in to implement those
behaviors using the examples to validate the
development.
6/10/2015 12
Conversation Focused
• BDD is
– Conversation
among Three
amigos
• PO/BAs
• Developers
• Testers
– Example based
– Value-Driven
– Outside-in
6/10/2015 13
Ubiquitous Language
• To make sure that the whole team understand what's
wanted, the behavior is described in non-technical
language.
– Gherkin language (given, when, then)
– Gherkin is a Business Readable, Domain Specific Language
that lets you describe software’s behaviour without
detailing how that behaviour is implemented.
– Simple syntax, few keywords
• Feature
• Background, Tag
• Scenario, Scenario Outline
• Given, When, Then
– Localized to 35+ languages
6/10/2015 14
Feature
• Every *.feature file conventionally consists of a
single feature.
• Lines starting with the keyword Feature: (or its
localized equivalent) followed by three indented
lines starts a feature.
• A feature usually contains a list of scenarios.
• You can write whatever you want up until the first
scenario, which starts with Scenario: (or localized
equivalent) on a new line.
• You can use tags to group features and scenarios
together, independent of your file and directory
structure.
6/10/2015 15
Scenario
• Every scenario starts with the Scenario: keyword,
followed by an optional scenario title.
• Each feature can have one or more scenarios.
• Every scenario consists of a list of steps, which
must start with one of the keywords
– Given
– When
– Then
– But or And
6/10/2015 16
Given
• The purpose of the Given steps is
– To put the system in a known state before the user (or external
system) starts interacting with the system (in the When steps).
• Avoid talking about user interaction in givens.
• If you have worked with use cases, givens are your
preconditions.
• Example
– To create records (model instances) or set up the database:
Given there are no users on site
Given the database is clean
– Authenticate a user (an exception to the no-interaction
recommendation. Things that “happened earlier” are ok):
Given I am logged in as "Everzet"
6/10/2015 17
When
• The purpose of When steps is to describe the key
action the user performs
• Examples:
– Interact with a web page (Webrat/Watir/Selenium
interaction etc should mostly go into When steps).
– Interact with some other user interface element.
– Developing a library? Kicking off some kind of action
that has an observable effect somewhere else.
When I register
6/10/2015 18
Then
• The purpose of Then steps is to observe
outcomes.
• The observations should be related to the
business value/benefit in your feature
description.
• The observations should inspect the output of
the system (a report, user interface, message,
command output)
– and not something deeply buried inside it (that has no
business value and is instead part of the
implementation).
6/10/2015 19
And / But
• If you have several Given, When or Then
steps, you can use And or But steps, allowing
your Scenario to read more fluently
6/10/2015 20
Step Data
• Steps may have some text or a table of data attached to them.
• Substitution of scenario outline values will be done in step data text or
table data if the “<name>” texts appear within the step data text or table
cells.
• Text
– Any text block following a step wrapped in “” lines will be associated with the
step.
• Table
– You may associate a table of data with a step by simply entering it, indented,
following the step. This can be useful for loading specific required data into a
model.
Given a set of specific users
| name | department |
| Barry | Beer Cans |
| Pudey | Silly Walks |
| Two-Lumps | Silly Walks |
6/10/2015 21
Example
Feature: Withdraw money from ATM
In order to avoid be in queue and save time
Customers should be able to
withdraw money from ATM all times
Scenario: Account has sufficient fund
Given Card is valid
And Account has 10000 Rs balance
When Customer enter 1000 Rs to withdraw
Then Customer should get 1000 Rs
AND Account should have 9000 remaining
balance
AND system should return the card
6/10/2015 22
• Think and identify more scenarios for same
feature.
• Discuss in your group each identified scenario
and write it using gherkin language
6/10/2015 23
Summary
• Working together to find better solutions
• Use real-world examples to build a shared
understanding of the domain
• People understand requirements best using
concrete examples.
• Examples clear up ambiguity and
misunderstandings.
• Examples expose missing requirements.
• Examples force everyone to think harder about a
problem.
6/10/2015 24
BDD framework
• Feature file
• Step Definition (Glue code)
• Actual implementation
FeaturefilecontainingScenarios
GlueCode(StepDefinitions)
ActualImplementation(Application)
ActualImplementation(Application)
ActualImplementation(Application)
ActualImplementation(Application)
6/10/2015 25
Re-visit VAT example
6/10/2015 26
Glue Code
6/10/2015 27
Best Practices
• Shallow BDD
– Automation doesn’t mean, it’s BDD. Communication is
must
– It’s like people who say they’re doing BDD, but they just
use Cucumber/SpecFlow to automate scenarios without
actually talking to anyone
– That’s not Shallow BDD. That’s not BDD at all.
– In fact, if they do that, they’ll probably run into trouble.
Shallow BDD is when you just have conversations around
scenarios.
– The shallowest form of BDD consists of just having
conversations around scenarios – not capturing them, not
automating them, but just having the conversations.
6/10/2015 28
Best Practices
• Avoid UI driven scenario
– Not recommended
Given I’m in user registration page
And I filled FirstName “Vinay”
And filled LastName “Krishna
And filled City “Bangalore”
………………………………….
………………………………….
And I choose to register as a developer
When I click on Register
Then I received successfully registered message
– Recommended
Given I am registering
When I fill in my basic information
Then I should be registered as a developer
6/10/2015 29
Best Practices
• 5 why – Determining the root cause
• Example
– Problem Statement: Customers are unhappy because they are being shipped
products that don’t meet their specifications.
1. Why are customers being shipped bad products?
– Because manufacturing built the products to a specification that is different from what
the customer and the sales person agreed to.
2. Why did manufacturing build the products to a different specification than that of sales?
– Because the sales person expedites work on the shop floor by calling the head of
manufacturing directly to begin work. An error happened when the specifications were
being communicated or written down.
3. Why does the sales person call the head of manufacturing directly to start work instead
of following the procedure established in the company?
– Because the “start work” form requires the sales director’s approval before work can
begin and slows the manufacturing process (or stops it when the director is out of the
office).
4. Why does the form contain an approval for the sales director?
– Because the sales director needs to be continually updated on sales for discussions
with the CEO.
• In this case only four Whys were required to find out that a non-value
added signature authority is helping to cause a process breakdown.
6/10/2015 30
BDD Myths
• BDD is automation of functional testing
– Automation of scenarios are just a by-product.
Remember Shallow BDD
• Using cucumber or specflow is BDD
– No, its just using a tool
• BDD is replacement of functional testing
– No, lets discuss
6/10/2015 31
6/10/2015 32

More Related Content

What's hot

Understanding Agile Hardware
Understanding Agile HardwareUnderstanding Agile Hardware
Understanding Agile HardwareCprime
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentQASymphony
 
Quality Jam 2016 Product Roadmap
Quality Jam 2016 Product RoadmapQuality Jam 2016 Product Roadmap
Quality Jam 2016 Product RoadmapQASymphony
 
Agile Transformation: People, Process and Tools to Make Your Transformation S...
Agile Transformation: People, Process and Tools to Make Your Transformation S...Agile Transformation: People, Process and Tools to Make Your Transformation S...
Agile Transformation: People, Process and Tools to Make Your Transformation S...QASymphony
 
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019Agile India
 
Achieving Balanced Agile Testing
Achieving Balanced Agile Testing Achieving Balanced Agile Testing
Achieving Balanced Agile Testing Cprime
 
Backlog Blunders
Backlog BlundersBacklog Blunders
Backlog BlundersJoe Combs
 
Is Test Planning a lost art in Agile? by Michelle Williams
Is Test Planning a lost art in Agile? by Michelle WilliamsIs Test Planning a lost art in Agile? by Michelle Williams
Is Test Planning a lost art in Agile? by Michelle WilliamsQA or the Highway
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015Yuval Yeret
 
Closing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop WebinarClosing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop WebinarQASymphony
 
Introduction to DevOps and Kanban
Introduction to DevOps and KanbanIntroduction to DevOps and Kanban
Introduction to DevOps and KanbanYuval Yeret
 
10 Steps to Developing Great Ideas on time and on budget using Lean & Agile...
10 Steps to Developing Great Ideas on time and on budget using Lean & Agile...10 Steps to Developing Great Ideas on time and on budget using Lean & Agile...
10 Steps to Developing Great Ideas on time and on budget using Lean & Agile...DigitalWoman.com
 
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieHey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieQA or the Highway
 
Post-agile approaches - agile for the real world and how to avoid agile failure
Post-agile approaches - agile for the real world and how to avoid agile failurePost-agile approaches - agile for the real world and how to avoid agile failure
Post-agile approaches - agile for the real world and how to avoid agile failureYuval Yeret
 
Explore Events of Scrum Framework
Explore Events of Scrum FrameworkExplore Events of Scrum Framework
Explore Events of Scrum FrameworkNaveen Kumar Singh
 

What's hot (20)

Understanding Agile Hardware
Understanding Agile HardwareUnderstanding Agile Hardware
Understanding Agile Hardware
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven Development
 
What is Agile Testing?
What is Agile Testing? What is Agile Testing?
What is Agile Testing?
 
Quality Jam 2016 Product Roadmap
Quality Jam 2016 Product RoadmapQuality Jam 2016 Product Roadmap
Quality Jam 2016 Product Roadmap
 
Agile Transformation: People, Process and Tools to Make Your Transformation S...
Agile Transformation: People, Process and Tools to Make Your Transformation S...Agile Transformation: People, Process and Tools to Make Your Transformation S...
Agile Transformation: People, Process and Tools to Make Your Transformation S...
 
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
 
Achieving Balanced Agile Testing
Achieving Balanced Agile Testing Achieving Balanced Agile Testing
Achieving Balanced Agile Testing
 
Backlog Blunders
Backlog BlundersBacklog Blunders
Backlog Blunders
 
Why agile?
Why agile?Why agile?
Why agile?
 
Is Test Planning a lost art in Agile? by Michelle Williams
Is Test Planning a lost art in Agile? by Michelle WilliamsIs Test Planning a lost art in Agile? by Michelle Williams
Is Test Planning a lost art in Agile? by Michelle Williams
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015
 
Closing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop WebinarClosing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop Webinar
 
Agile basics
Agile basicsAgile basics
Agile basics
 
Introduction to DevOps and Kanban
Introduction to DevOps and KanbanIntroduction to DevOps and Kanban
Introduction to DevOps and Kanban
 
10 Steps to Developing Great Ideas on time and on budget using Lean & Agile...
10 Steps to Developing Great Ideas on time and on budget using Lean & Agile...10 Steps to Developing Great Ideas on time and on budget using Lean & Agile...
10 Steps to Developing Great Ideas on time and on budget using Lean & Agile...
 
Codess Prague - Agile vs Traditional Methods - Apr 2014
Codess Prague - Agile vs Traditional Methods - Apr 2014Codess Prague - Agile vs Traditional Methods - Apr 2014
Codess Prague - Agile vs Traditional Methods - Apr 2014
 
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieHey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
 
Post-agile approaches - agile for the real world and how to avoid agile failure
Post-agile approaches - agile for the real world and how to avoid agile failurePost-agile approaches - agile for the real world and how to avoid agile failure
Post-agile approaches - agile for the real world and how to avoid agile failure
 
Explore Events of Scrum Framework
Explore Events of Scrum FrameworkExplore Events of Scrum Framework
Explore Events of Scrum Framework
 

Viewers also liked

BDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenBDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenRiverGlide
 
Gherkin - crash course
Gherkin - crash courseGherkin - crash course
Gherkin - crash courseMichele Costa
 
A New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story SplittingA New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story SplittingDr. Alexander Schwartz
 
Behaviour driven development aka bdd
Behaviour driven development aka bddBehaviour driven development aka bdd
Behaviour driven development aka bddPrince Gupta
 
Tutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinTutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinChristian Hassa
 
Specification by example and agile acceptance testing
Specification by example and agile acceptance testingSpecification by example and agile acceptance testing
Specification by example and agile acceptance testinggojkoadzic
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumberNibu Baby
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with GherkinChristian Hassa
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Vishal Biyani
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bddSeb Rose
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD) Behavior Driven Development (BDD)
Behavior Driven Development (BDD) Scio Consulting
 
Kanban beyond visualization
Kanban beyond visualizationKanban beyond visualization
Kanban beyond visualizationInnovation Roots
 
The Agile Analyst: Making Agile Methods Work for You
The Agile Analyst: Making Agile Methods Work for YouThe Agile Analyst: Making Agile Methods Work for You
The Agile Analyst: Making Agile Methods Work for YouLitheSpeed
 
Behavior Driven Development - How To Start with Behat
Behavior Driven Development - How To Start with BehatBehavior Driven Development - How To Start with Behat
Behavior Driven Development - How To Start with Behatimoneytech
 
The Three Amigos
The Three AmigosThe Three Amigos
The Three AmigosSiddhi
 
The Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt EakinThe Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt EakinQA or the Highway
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bddantannatna
 

Viewers also liked (20)

BDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenBDD - beyond: Given, When and Then
BDD - beyond: Given, When and Then
 
Gherkin - crash course
Gherkin - crash courseGherkin - crash course
Gherkin - crash course
 
A New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story SplittingA New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story Splitting
 
Behaviour driven development aka bdd
Behaviour driven development aka bddBehaviour driven development aka bdd
Behaviour driven development aka bdd
 
Tutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinTutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with Gherkin
 
Specification by example and agile acceptance testing
Specification by example and agile acceptance testingSpecification by example and agile acceptance testing
Specification by example and agile acceptance testing
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bdd
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD) Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
 
Kanban beyond visualization
Kanban beyond visualizationKanban beyond visualization
Kanban beyond visualization
 
Estimation
Estimation Estimation
Estimation
 
The Agile Analyst: Making Agile Methods Work for You
The Agile Analyst: Making Agile Methods Work for YouThe Agile Analyst: Making Agile Methods Work for You
The Agile Analyst: Making Agile Methods Work for You
 
Have we crossed the chasm
Have we crossed the chasmHave we crossed the chasm
Have we crossed the chasm
 
Behavior Driven Development - How To Start with Behat
Behavior Driven Development - How To Start with BehatBehavior Driven Development - How To Start with Behat
Behavior Driven Development - How To Start with Behat
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and CucumberTest Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
 
The Three Amigos
The Three AmigosThe Three Amigos
The Three Amigos
 
The Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt EakinThe Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt Eakin
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bdd
 

Similar to Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vinay krishna - at prowareness

Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018Perfecto Mobile
 
Practical_Business_Rules_Development_and_Use
Practical_Business_Rules_Development_and_UsePractical_Business_Rules_Development_and_Use
Practical_Business_Rules_Development_and_UseMichael Cook
 
Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...Ravi Tadwalkar
 
Sdec10 lean package implementation
Sdec10 lean package implementationSdec10 lean package implementation
Sdec10 lean package implementationTerry Bunio
 
Myths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentMyths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentPankaj Nakhat
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileIosif Itkin
 
Jump Start Agile Testing with Acceptance Test Driven Development
Jump Start Agile Testing with Acceptance Test Driven DevelopmentJump Start Agile Testing with Acceptance Test Driven Development
Jump Start Agile Testing with Acceptance Test Driven DevelopmentTechWell
 
Agile adoption julen c. mohanty
Agile adoption   julen c. mohantyAgile adoption   julen c. mohanty
Agile adoption julen c. mohantyJulen Mohanty
 
Agility is the tool gilb vilnius 9 dec 2013
Agility is the tool gilb vilnius 9 dec 2013Agility is the tool gilb vilnius 9 dec 2013
Agility is the tool gilb vilnius 9 dec 2013tom gilb
 
IIT Academy: 204 User stories and acceptance criteria
IIT Academy: 204 User stories and acceptance criteriaIIT Academy: 204 User stories and acceptance criteria
IIT Academy: 204 User stories and acceptance criteriaSteven HK Ma | 馬國豪
 
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...BI Brainz
 
Software Product Engineering
Software Product EngineeringSoftware Product Engineering
Software Product EngineeringSagittarius
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projects15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projectsDocFluix, LLC
 
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...What Are The Best Practices When Building a Back-end App With Kotlin And Spri...
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...Alex Fedorov
 
Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Alan Hood
 
Optimize Your Funnel By Getting Inside Your Buyer's Head
Optimize Your Funnel By Getting Inside Your Buyer's HeadOptimize Your Funnel By Getting Inside Your Buyer's Head
Optimize Your Funnel By Getting Inside Your Buyer's HeadDavid Skok
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationTechWell
 

Similar to Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vinay krishna - at prowareness (20)

Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
 
Practical_Business_Rules_Development_and_Use
Practical_Business_Rules_Development_and_UsePractical_Business_Rules_Development_and_Use
Practical_Business_Rules_Development_and_Use
 
Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...
 
Sdec10 lean package implementation
Sdec10 lean package implementationSdec10 lean package implementation
Sdec10 lean package implementation
 
Myths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentMyths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven Development
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibile
 
Jump Start Agile Testing with Acceptance Test Driven Development
Jump Start Agile Testing with Acceptance Test Driven DevelopmentJump Start Agile Testing with Acceptance Test Driven Development
Jump Start Agile Testing with Acceptance Test Driven Development
 
Agile adoption julen c. mohanty
Agile adoption   julen c. mohantyAgile adoption   julen c. mohanty
Agile adoption julen c. mohanty
 
Agility is the tool gilb vilnius 9 dec 2013
Agility is the tool gilb vilnius 9 dec 2013Agility is the tool gilb vilnius 9 dec 2013
Agility is the tool gilb vilnius 9 dec 2013
 
IIT Academy: 204 User stories and acceptance criteria
IIT Academy: 204 User stories and acceptance criteriaIIT Academy: 204 User stories and acceptance criteria
IIT Academy: 204 User stories and acceptance criteria
 
Test Policy and Practices
Test Policy and PracticesTest Policy and Practices
Test Policy and Practices
 
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
 
Software Product Engineering
Software Product EngineeringSoftware Product Engineering
Software Product Engineering
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projects15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projects
 
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...What Are The Best Practices When Building a Back-end App With Kotlin And Spri...
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...
 
Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Is Being Agile a Good Thing?
Is Being Agile a Good Thing?
 
Optimize Your Funnel By Getting Inside Your Buyer's Head
Optimize Your Funnel By Getting Inside Your Buyer's HeadOptimize Your Funnel By Getting Inside Your Buyer's Head
Optimize Your Funnel By Getting Inside Your Buyer's Head
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber Implementation
 
Pavan's Resume
Pavan's ResumePavan's Resume
Pavan's Resume
 

More from Scrum Bangalore

Technical debt - A slow Death!! - Yasub Hashmi, Scrum Bangalore 22nd Meetup
Technical debt - A slow Death!! - Yasub Hashmi, Scrum Bangalore 22nd MeetupTechnical debt - A slow Death!! - Yasub Hashmi, Scrum Bangalore 22nd Meetup
Technical debt - A slow Death!! - Yasub Hashmi, Scrum Bangalore 22nd MeetupScrum Bangalore
 
Team's agility measurement workshop - Ritesh Agrawal & Arun Kumar P.N, Scrum ...
Team's agility measurement workshop - Ritesh Agrawal & Arun Kumar P.N, Scrum ...Team's agility measurement workshop - Ritesh Agrawal & Arun Kumar P.N, Scrum ...
Team's agility measurement workshop - Ritesh Agrawal & Arun Kumar P.N, Scrum ...Scrum Bangalore
 
Don't drive your Race car on a dirt track!! - Athresh Krishnappa, Scrum Banga...
Don't drive your Race car on a dirt track!! - Athresh Krishnappa, Scrum Banga...Don't drive your Race car on a dirt track!! - Athresh Krishnappa, Scrum Banga...
Don't drive your Race car on a dirt track!! - Athresh Krishnappa, Scrum Banga...Scrum Bangalore
 
Create Winning Training Programs - Prince Kumar Mishra, Scrum Bangalore 21st ...
Create Winning Training Programs - Prince Kumar Mishra, Scrum Bangalore 21st ...Create Winning Training Programs - Prince Kumar Mishra, Scrum Bangalore 21st ...
Create Winning Training Programs - Prince Kumar Mishra, Scrum Bangalore 21st ...Scrum Bangalore
 
Product Discovery Techniques N Tips - Jayaprakash Puttaswamy (JP), Scrum Bang...
Product Discovery Techniques N Tips - Jayaprakash Puttaswamy (JP), Scrum Bang...Product Discovery Techniques N Tips - Jayaprakash Puttaswamy (JP), Scrum Bang...
Product Discovery Techniques N Tips - Jayaprakash Puttaswamy (JP), Scrum Bang...Scrum Bangalore
 
Self Assessment To The Rescue - Vinay Kumar, Scrum Bangalore 21st Meetup
Self Assessment To The Rescue - Vinay Kumar, Scrum Bangalore 21st MeetupSelf Assessment To The Rescue - Vinay Kumar, Scrum Bangalore 21st Meetup
Self Assessment To The Rescue - Vinay Kumar, Scrum Bangalore 21st MeetupScrum Bangalore
 
Leaders rile on Scaling Agile Practices - Anand Murthy Raj, Scrum Bangalore 2...
Leaders rile on Scaling Agile Practices - Anand Murthy Raj, Scrum Bangalore 2...Leaders rile on Scaling Agile Practices - Anand Murthy Raj, Scrum Bangalore 2...
Leaders rile on Scaling Agile Practices - Anand Murthy Raj, Scrum Bangalore 2...Scrum Bangalore
 
Scrum Day India discounting
Scrum Day India discountingScrum Day India discounting
Scrum Day India discountingScrum Bangalore
 
Agile in Community and Social Media - Karan Tiwari - Scrum Bangalore 19th Meetup
Agile in Community and Social Media - Karan Tiwari - Scrum Bangalore 19th MeetupAgile in Community and Social Media - Karan Tiwari - Scrum Bangalore 19th Meetup
Agile in Community and Social Media - Karan Tiwari - Scrum Bangalore 19th MeetupScrum Bangalore
 
The Symptoms of Succesful Agile Enterprise - Anand Murthy Raj - Scrum Bangalo...
The Symptoms of Succesful Agile Enterprise - Anand Murthy Raj - Scrum Bangalo...The Symptoms of Succesful Agile Enterprise - Anand Murthy Raj - Scrum Bangalo...
The Symptoms of Succesful Agile Enterprise - Anand Murthy Raj - Scrum Bangalo...Scrum Bangalore
 
Product Discovery to Delivery - Jayaprakash Puttaswamy - Scrum Bangalore 19th...
Product Discovery to Delivery - Jayaprakash Puttaswamy - Scrum Bangalore 19th...Product Discovery to Delivery - Jayaprakash Puttaswamy - Scrum Bangalore 19th...
Product Discovery to Delivery - Jayaprakash Puttaswamy - Scrum Bangalore 19th...Scrum Bangalore
 
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...Scrum Bangalore
 
Agile Transformation Kick Start - Sathyanaraya H R - Scrum Bangalore 19th Meetup
Agile Transformation Kick Start - Sathyanaraya H R - Scrum Bangalore 19th MeetupAgile Transformation Kick Start - Sathyanaraya H R - Scrum Bangalore 19th Meetup
Agile Transformation Kick Start - Sathyanaraya H R - Scrum Bangalore 19th MeetupScrum Bangalore
 
Effort Estimation - Chinmay VS - Scrum Bangalore 19th Meetup
Effort Estimation - Chinmay VS - Scrum Bangalore 19th MeetupEffort Estimation - Chinmay VS - Scrum Bangalore 19th Meetup
Effort Estimation - Chinmay VS - Scrum Bangalore 19th MeetupScrum Bangalore
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Building an MVP - Madhu Kris...
Scrum Bangalore 18th Meetup - October 15, 2016 - Building an MVP - Madhu Kris...Scrum Bangalore 18th Meetup - October 15, 2016 - Building an MVP - Madhu Kris...
Scrum Bangalore 18th Meetup - October 15, 2016 - Building an MVP - Madhu Kris...Scrum Bangalore
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Elasticity of Kanban - Saika...
Scrum Bangalore 18th Meetup - October 15, 2016 - Elasticity of Kanban - Saika...Scrum Bangalore 18th Meetup - October 15, 2016 - Elasticity of Kanban - Saika...
Scrum Bangalore 18th Meetup - October 15, 2016 - Elasticity of Kanban - Saika...Scrum Bangalore
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...Scrum Bangalore
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Business Agility 1.0 - Santo...
Scrum Bangalore 18th Meetup - October 15, 2016 - Business Agility 1.0 - Santo...Scrum Bangalore 18th Meetup - October 15, 2016 - Business Agility 1.0 - Santo...
Scrum Bangalore 18th Meetup - October 15, 2016 - Business Agility 1.0 - Santo...Scrum Bangalore
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Role of an Engineering Manag...
Scrum Bangalore 18th Meetup - October 15, 2016 - Role of an Engineering Manag...Scrum Bangalore 18th Meetup - October 15, 2016 - Role of an Engineering Manag...
Scrum Bangalore 18th Meetup - October 15, 2016 - Role of an Engineering Manag...Scrum Bangalore
 

More from Scrum Bangalore (20)

Technical debt - A slow Death!! - Yasub Hashmi, Scrum Bangalore 22nd Meetup
Technical debt - A slow Death!! - Yasub Hashmi, Scrum Bangalore 22nd MeetupTechnical debt - A slow Death!! - Yasub Hashmi, Scrum Bangalore 22nd Meetup
Technical debt - A slow Death!! - Yasub Hashmi, Scrum Bangalore 22nd Meetup
 
Team's agility measurement workshop - Ritesh Agrawal & Arun Kumar P.N, Scrum ...
Team's agility measurement workshop - Ritesh Agrawal & Arun Kumar P.N, Scrum ...Team's agility measurement workshop - Ritesh Agrawal & Arun Kumar P.N, Scrum ...
Team's agility measurement workshop - Ritesh Agrawal & Arun Kumar P.N, Scrum ...
 
Don't drive your Race car on a dirt track!! - Athresh Krishnappa, Scrum Banga...
Don't drive your Race car on a dirt track!! - Athresh Krishnappa, Scrum Banga...Don't drive your Race car on a dirt track!! - Athresh Krishnappa, Scrum Banga...
Don't drive your Race car on a dirt track!! - Athresh Krishnappa, Scrum Banga...
 
Create Winning Training Programs - Prince Kumar Mishra, Scrum Bangalore 21st ...
Create Winning Training Programs - Prince Kumar Mishra, Scrum Bangalore 21st ...Create Winning Training Programs - Prince Kumar Mishra, Scrum Bangalore 21st ...
Create Winning Training Programs - Prince Kumar Mishra, Scrum Bangalore 21st ...
 
Product Discovery Techniques N Tips - Jayaprakash Puttaswamy (JP), Scrum Bang...
Product Discovery Techniques N Tips - Jayaprakash Puttaswamy (JP), Scrum Bang...Product Discovery Techniques N Tips - Jayaprakash Puttaswamy (JP), Scrum Bang...
Product Discovery Techniques N Tips - Jayaprakash Puttaswamy (JP), Scrum Bang...
 
Self Assessment To The Rescue - Vinay Kumar, Scrum Bangalore 21st Meetup
Self Assessment To The Rescue - Vinay Kumar, Scrum Bangalore 21st MeetupSelf Assessment To The Rescue - Vinay Kumar, Scrum Bangalore 21st Meetup
Self Assessment To The Rescue - Vinay Kumar, Scrum Bangalore 21st Meetup
 
Leaders rile on Scaling Agile Practices - Anand Murthy Raj, Scrum Bangalore 2...
Leaders rile on Scaling Agile Practices - Anand Murthy Raj, Scrum Bangalore 2...Leaders rile on Scaling Agile Practices - Anand Murthy Raj, Scrum Bangalore 2...
Leaders rile on Scaling Agile Practices - Anand Murthy Raj, Scrum Bangalore 2...
 
Scrum Day India flyer
Scrum Day India flyerScrum Day India flyer
Scrum Day India flyer
 
Scrum Day India discounting
Scrum Day India discountingScrum Day India discounting
Scrum Day India discounting
 
Agile in Community and Social Media - Karan Tiwari - Scrum Bangalore 19th Meetup
Agile in Community and Social Media - Karan Tiwari - Scrum Bangalore 19th MeetupAgile in Community and Social Media - Karan Tiwari - Scrum Bangalore 19th Meetup
Agile in Community and Social Media - Karan Tiwari - Scrum Bangalore 19th Meetup
 
The Symptoms of Succesful Agile Enterprise - Anand Murthy Raj - Scrum Bangalo...
The Symptoms of Succesful Agile Enterprise - Anand Murthy Raj - Scrum Bangalo...The Symptoms of Succesful Agile Enterprise - Anand Murthy Raj - Scrum Bangalo...
The Symptoms of Succesful Agile Enterprise - Anand Murthy Raj - Scrum Bangalo...
 
Product Discovery to Delivery - Jayaprakash Puttaswamy - Scrum Bangalore 19th...
Product Discovery to Delivery - Jayaprakash Puttaswamy - Scrum Bangalore 19th...Product Discovery to Delivery - Jayaprakash Puttaswamy - Scrum Bangalore 19th...
Product Discovery to Delivery - Jayaprakash Puttaswamy - Scrum Bangalore 19th...
 
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...
 
Agile Transformation Kick Start - Sathyanaraya H R - Scrum Bangalore 19th Meetup
Agile Transformation Kick Start - Sathyanaraya H R - Scrum Bangalore 19th MeetupAgile Transformation Kick Start - Sathyanaraya H R - Scrum Bangalore 19th Meetup
Agile Transformation Kick Start - Sathyanaraya H R - Scrum Bangalore 19th Meetup
 
Effort Estimation - Chinmay VS - Scrum Bangalore 19th Meetup
Effort Estimation - Chinmay VS - Scrum Bangalore 19th MeetupEffort Estimation - Chinmay VS - Scrum Bangalore 19th Meetup
Effort Estimation - Chinmay VS - Scrum Bangalore 19th Meetup
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Building an MVP - Madhu Kris...
Scrum Bangalore 18th Meetup - October 15, 2016 - Building an MVP - Madhu Kris...Scrum Bangalore 18th Meetup - October 15, 2016 - Building an MVP - Madhu Kris...
Scrum Bangalore 18th Meetup - October 15, 2016 - Building an MVP - Madhu Kris...
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Elasticity of Kanban - Saika...
Scrum Bangalore 18th Meetup - October 15, 2016 - Elasticity of Kanban - Saika...Scrum Bangalore 18th Meetup - October 15, 2016 - Elasticity of Kanban - Saika...
Scrum Bangalore 18th Meetup - October 15, 2016 - Elasticity of Kanban - Saika...
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Business Agility 1.0 - Santo...
Scrum Bangalore 18th Meetup - October 15, 2016 - Business Agility 1.0 - Santo...Scrum Bangalore 18th Meetup - October 15, 2016 - Business Agility 1.0 - Santo...
Scrum Bangalore 18th Meetup - October 15, 2016 - Business Agility 1.0 - Santo...
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Role of an Engineering Manag...
Scrum Bangalore 18th Meetup - October 15, 2016 - Role of an Engineering Manag...Scrum Bangalore 18th Meetup - October 15, 2016 - Role of an Engineering Manag...
Scrum Bangalore 18th Meetup - October 15, 2016 - Role of an Engineering Manag...
 

Recently uploaded

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Recently uploaded (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vinay krishna - at prowareness

  • 1. Behaviour Driven Development Only an effective way to collaborate among three amigos Testing is just a by-product Vinay Krishna vinaykris@gmail.com http://in.linkedin.com/in/vinaykrishna 6/10/2015 1
  • 2. Introduction • Often software development results surprises at the end – The business being unable to define the desired outcomes – Ambiguity in the developer’s and tester’s understanding of what needs to be built – The business not able to understand the technical challenges or unable to look at tester’s view on the requirement 6/10/2015 2
  • 3. Introduction • Three roles, three steps (document specification, write code; develop the app, write test plan; test the app) • Three specs and three different lifecycles – Mostly we maintain three different versions of system’s need and many times find conflict among them • Functional Specification document • Source Code • Test case and test plan document 6/10/2015 3
  • 4. Introduction • Is it Bug? • Is it Feature? • No, it is Beature – Blame game 6/10/2015 4
  • 5. Introduction • Why beature? – Misunderstanding at all level – Lack of effective communication – Difficulty in communication – Lots of assumptions 6/10/2015 5
  • 6. Group Activity • To understand the importance of communication • To understand the challenge in communication 6/10/2015 6
  • 7. Discuss • Imagine we have been given a task to add an ‘include VAT and delivery cost to the total price of the customer basket’ feature to an existing eCommerce project with following set of business rules: – VAT is 20% – Delivery cost for small basket (less than £20) is £3 – Delivery cost for medium basket (more than £20) is £2 • Can you use this information to deliver a working feature? 6/10/2015 7
  • 8. Discuss • These rules do not specify whether to add VAT before delivery cost to the basket total or after. • How should you handle a situation where the basket delivery cost is exactly £20? • What happens if there are multiple products in the basket? 6/10/2015 8
  • 11. What is BDD • Exploring the unknown • Sharing and understanding • Individuals and interactions over processes and tools 6/10/2015 11
  • 12. Introduction • Behavior Driven Development – Describes what business wants the system to do by talking through example behavior. – Work from the outside-in to implement those behaviors using the examples to validate the development. 6/10/2015 12
  • 13. Conversation Focused • BDD is – Conversation among Three amigos • PO/BAs • Developers • Testers – Example based – Value-Driven – Outside-in 6/10/2015 13
  • 14. Ubiquitous Language • To make sure that the whole team understand what's wanted, the behavior is described in non-technical language. – Gherkin language (given, when, then) – Gherkin is a Business Readable, Domain Specific Language that lets you describe software’s behaviour without detailing how that behaviour is implemented. – Simple syntax, few keywords • Feature • Background, Tag • Scenario, Scenario Outline • Given, When, Then – Localized to 35+ languages 6/10/2015 14
  • 15. Feature • Every *.feature file conventionally consists of a single feature. • Lines starting with the keyword Feature: (or its localized equivalent) followed by three indented lines starts a feature. • A feature usually contains a list of scenarios. • You can write whatever you want up until the first scenario, which starts with Scenario: (or localized equivalent) on a new line. • You can use tags to group features and scenarios together, independent of your file and directory structure. 6/10/2015 15
  • 16. Scenario • Every scenario starts with the Scenario: keyword, followed by an optional scenario title. • Each feature can have one or more scenarios. • Every scenario consists of a list of steps, which must start with one of the keywords – Given – When – Then – But or And 6/10/2015 16
  • 17. Given • The purpose of the Given steps is – To put the system in a known state before the user (or external system) starts interacting with the system (in the When steps). • Avoid talking about user interaction in givens. • If you have worked with use cases, givens are your preconditions. • Example – To create records (model instances) or set up the database: Given there are no users on site Given the database is clean – Authenticate a user (an exception to the no-interaction recommendation. Things that “happened earlier” are ok): Given I am logged in as "Everzet" 6/10/2015 17
  • 18. When • The purpose of When steps is to describe the key action the user performs • Examples: – Interact with a web page (Webrat/Watir/Selenium interaction etc should mostly go into When steps). – Interact with some other user interface element. – Developing a library? Kicking off some kind of action that has an observable effect somewhere else. When I register 6/10/2015 18
  • 19. Then • The purpose of Then steps is to observe outcomes. • The observations should be related to the business value/benefit in your feature description. • The observations should inspect the output of the system (a report, user interface, message, command output) – and not something deeply buried inside it (that has no business value and is instead part of the implementation). 6/10/2015 19
  • 20. And / But • If you have several Given, When or Then steps, you can use And or But steps, allowing your Scenario to read more fluently 6/10/2015 20
  • 21. Step Data • Steps may have some text or a table of data attached to them. • Substitution of scenario outline values will be done in step data text or table data if the “<name>” texts appear within the step data text or table cells. • Text – Any text block following a step wrapped in “” lines will be associated with the step. • Table – You may associate a table of data with a step by simply entering it, indented, following the step. This can be useful for loading specific required data into a model. Given a set of specific users | name | department | | Barry | Beer Cans | | Pudey | Silly Walks | | Two-Lumps | Silly Walks | 6/10/2015 21
  • 22. Example Feature: Withdraw money from ATM In order to avoid be in queue and save time Customers should be able to withdraw money from ATM all times Scenario: Account has sufficient fund Given Card is valid And Account has 10000 Rs balance When Customer enter 1000 Rs to withdraw Then Customer should get 1000 Rs AND Account should have 9000 remaining balance AND system should return the card 6/10/2015 22
  • 23. • Think and identify more scenarios for same feature. • Discuss in your group each identified scenario and write it using gherkin language 6/10/2015 23
  • 24. Summary • Working together to find better solutions • Use real-world examples to build a shared understanding of the domain • People understand requirements best using concrete examples. • Examples clear up ambiguity and misunderstandings. • Examples expose missing requirements. • Examples force everyone to think harder about a problem. 6/10/2015 24
  • 25. BDD framework • Feature file • Step Definition (Glue code) • Actual implementation FeaturefilecontainingScenarios GlueCode(StepDefinitions) ActualImplementation(Application) ActualImplementation(Application) ActualImplementation(Application) ActualImplementation(Application) 6/10/2015 25
  • 28. Best Practices • Shallow BDD – Automation doesn’t mean, it’s BDD. Communication is must – It’s like people who say they’re doing BDD, but they just use Cucumber/SpecFlow to automate scenarios without actually talking to anyone – That’s not Shallow BDD. That’s not BDD at all. – In fact, if they do that, they’ll probably run into trouble. Shallow BDD is when you just have conversations around scenarios. – The shallowest form of BDD consists of just having conversations around scenarios – not capturing them, not automating them, but just having the conversations. 6/10/2015 28
  • 29. Best Practices • Avoid UI driven scenario – Not recommended Given I’m in user registration page And I filled FirstName “Vinay” And filled LastName “Krishna And filled City “Bangalore” …………………………………. …………………………………. And I choose to register as a developer When I click on Register Then I received successfully registered message – Recommended Given I am registering When I fill in my basic information Then I should be registered as a developer 6/10/2015 29
  • 30. Best Practices • 5 why – Determining the root cause • Example – Problem Statement: Customers are unhappy because they are being shipped products that don’t meet their specifications. 1. Why are customers being shipped bad products? – Because manufacturing built the products to a specification that is different from what the customer and the sales person agreed to. 2. Why did manufacturing build the products to a different specification than that of sales? – Because the sales person expedites work on the shop floor by calling the head of manufacturing directly to begin work. An error happened when the specifications were being communicated or written down. 3. Why does the sales person call the head of manufacturing directly to start work instead of following the procedure established in the company? – Because the “start work” form requires the sales director’s approval before work can begin and slows the manufacturing process (or stops it when the director is out of the office). 4. Why does the form contain an approval for the sales director? – Because the sales director needs to be continually updated on sales for discussions with the CEO. • In this case only four Whys were required to find out that a non-value added signature authority is helping to cause a process breakdown. 6/10/2015 30
  • 31. BDD Myths • BDD is automation of functional testing – Automation of scenarios are just a by-product. Remember Shallow BDD • Using cucumber or specflow is BDD – No, its just using a tool • BDD is replacement of functional testing – No, lets discuss 6/10/2015 31