Changing business landscape!
Bring Idea to the product in hands of users!
Adopting User focused/User centric approach
everyone else is just a delay in the process…
Modelling functionality around user Behavior!
Traditional software approach
One way pipe!Well mostly….
Everyone operated in silos..
Sponsor Business Analysis,
Requirements gathering
Development Testing End User
Idea
(Customer)
The Enlightened approach?!
Bring back the human traits! The Agile approach
Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.
Business people and developers must work
together daily throughout the project
http://www.agilemanifesto.org/principles.html
The best architectures, requirements, and designs
emerge from self-organizing teams.
The End user isTHE customer!
Customer is the king!
End User
Improving collaboration and communication:
Provide Developers and Business with shared tools and a
shared process to collaborate on software development,
which aid in improving the conversations within.
BDD becomes one such vehicle for enhancing communication
between all the different roles in a software project
Sponsor
PO
Dev
Team
Idea
[Scrum Guide –There is PO and everyone else is part of the Development team, No titles]
BDD is an evolution of Agile Engineering Practices – Combining the ideas of:
Domain Driven Design,Test Driven Development, Object Oriented Analysis
…..and also adopting the ideas from Domain Specific Languages.
Agile Project Management Practices
Agile Engineering Practices
Eg: In Scrum it is - Daily Scrum, Review, Sprints, Retro etc
Eg:Continuous Integration,TDD, Automation, pairing etc
+
=
Winning software
BDD enhances communication and collaboration largely
through the use of English-like sentences that can express the
behaviour and the expected outcomes.
BDD states that…
any unit of software should be
specified in terms of
desired behaviour.
BDD captures the User Stories, combines them with scenarios in a formal way.
Ideas
User stories
User stories + Scenarios
Development
(coding + testing)
In backlog….
Title:The story should have a clear and explicit title.
Narrative
A short, introductory section that specifies:
Who - Business or project role, ie primary stakeholder of the story
what - effect the stakeholder wants the story to have
why - business value the stakeholder will derive from this effect
Acceptance criteria or scenario(s):
a description of each specific case of the narrative. Such a scenario has the following
structure:
Pre condition/s : that is assumed to be true at the beginning
TheTrigger/Action: the start of the scenario.
Expected outcome: in one or more clauses.
So, It merges specification and test documentation into one cohesive whole.
in 2007, Dan North suggested a template for a textual format
which has found wide following in different BDD software
tools
Story: Returns go to stock
As a store owner
I want to add items back to stock when they're returned
In order to keep track of stock
Scenario 1: Refunded items should be returned to stock
Given that a customer previously bought a black sweater from me
And I have three black sweaters in stock.
When he returns the black sweater for a refund
Then I should have four black sweaters in stock.
Scenario 2: …
This format is referred to as the Gherkin language,
JBehave - http://jbehave.org/
RSpec - http://rspec.info/
Cucumber - http://cukes.info/
others….
JDave - http://jdave.org/
Concordion - http://www.concordion.org
Easyb - http://easyb.org/
BDD frameworks
Which framework/language to choose?
Choose the frameworks or languages that are closer to the Application stack
For better collaboration of all the members of development team
through shared tooling and shared skillsets.
It might require cross skilling, upskilling, poly-skilling of people.
BDD way of testing using
Cucumber + Protractor for Angular Applications
Bring stories to life using BDD (Behaviour driven development)

Bring stories to life using BDD (Behaviour driven development)

  • 2.
    Changing business landscape! BringIdea to the product in hands of users! Adopting User focused/User centric approach everyone else is just a delay in the process… Modelling functionality around user Behavior!
  • 3.
    Traditional software approach Oneway pipe!Well mostly…. Everyone operated in silos.. Sponsor Business Analysis, Requirements gathering Development Testing End User Idea (Customer)
  • 4.
    The Enlightened approach?! Bringback the human traits! The Agile approach Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Business people and developers must work together daily throughout the project http://www.agilemanifesto.org/principles.html The best architectures, requirements, and designs emerge from self-organizing teams. The End user isTHE customer! Customer is the king! End User
  • 5.
    Improving collaboration andcommunication: Provide Developers and Business with shared tools and a shared process to collaborate on software development, which aid in improving the conversations within. BDD becomes one such vehicle for enhancing communication between all the different roles in a software project Sponsor PO Dev Team Idea [Scrum Guide –There is PO and everyone else is part of the Development team, No titles]
  • 6.
    BDD is anevolution of Agile Engineering Practices – Combining the ideas of: Domain Driven Design,Test Driven Development, Object Oriented Analysis …..and also adopting the ideas from Domain Specific Languages. Agile Project Management Practices Agile Engineering Practices Eg: In Scrum it is - Daily Scrum, Review, Sprints, Retro etc Eg:Continuous Integration,TDD, Automation, pairing etc + = Winning software
  • 7.
    BDD enhances communicationand collaboration largely through the use of English-like sentences that can express the behaviour and the expected outcomes. BDD states that… any unit of software should be specified in terms of desired behaviour. BDD captures the User Stories, combines them with scenarios in a formal way.
  • 8.
    Ideas User stories User stories+ Scenarios Development (coding + testing) In backlog….
  • 9.
    Title:The story shouldhave a clear and explicit title. Narrative A short, introductory section that specifies: Who - Business or project role, ie primary stakeholder of the story what - effect the stakeholder wants the story to have why - business value the stakeholder will derive from this effect Acceptance criteria or scenario(s): a description of each specific case of the narrative. Such a scenario has the following structure: Pre condition/s : that is assumed to be true at the beginning TheTrigger/Action: the start of the scenario. Expected outcome: in one or more clauses. So, It merges specification and test documentation into one cohesive whole.
  • 10.
    in 2007, DanNorth suggested a template for a textual format which has found wide following in different BDD software tools Story: Returns go to stock As a store owner I want to add items back to stock when they're returned In order to keep track of stock Scenario 1: Refunded items should be returned to stock Given that a customer previously bought a black sweater from me And I have three black sweaters in stock. When he returns the black sweater for a refund Then I should have four black sweaters in stock. Scenario 2: … This format is referred to as the Gherkin language,
  • 11.
    JBehave - http://jbehave.org/ RSpec- http://rspec.info/ Cucumber - http://cukes.info/ others…. JDave - http://jdave.org/ Concordion - http://www.concordion.org Easyb - http://easyb.org/ BDD frameworks
  • 12.
    Which framework/language tochoose? Choose the frameworks or languages that are closer to the Application stack For better collaboration of all the members of development team through shared tooling and shared skillsets. It might require cross skilling, upskilling, poly-skilling of people.
  • 13.
    BDD way oftesting using Cucumber + Protractor for Angular Applications