The Pros of Behavior Driven
Development (BDD): Business User
Scenarios
Natalya Zaytseva
Exactpro Systems LLC
Slide 2
Slide 2 text
Test Driven Development (TDD)
Test
Failed
Add a test
Test
Passed
Update the code
Refactor
Slide 3
Slide 3 text
Test Driven Development (TDD)
Benefits
Unit tests prove that code actually works
Refactoring allows to improve the design of the code
Low-level regression test suite
Test-first reduces the cost of bugs
Drawbacks
Developers can consider it as a waste of time
Anticipation by developers the concept of “Testing”
The tests can be targeted on verification of classes and methods and
not on what the code really should do
Slide 4
Slide 4 text
Behavior Driven
Development (BDD)
Shifting from thinking in “tests” to thinking in
“behavior”
Collaboration between Business stakeholders,
Business Analysts, QA team and Developers
Ubiquitous language
.
Slide 5
Slide 5 text
Behavior Driven Development
(BDD)
Approach
a
feature1
feature3
QA Analyst
Scenarios
Class
Developer
feature4
QA Analyst
Ubiquitous language
Behavior
Slide 6
Slide 6 text
BDD: Business Scenarios
Story: [Narrative]
As a Role
I request a Feature
To gain a Benefit
Scenario
Given [context]
AND [some more context]
When [Event]
Then [Outcome]
And [Another Outcome]
Slide 7
Slide 7 text
BDD Cons
Ivan Bobrov
EXTENT October 2011
Slide 8
Slide 8 text
The Beginning
Slide 9
Slide 9 text
Is it easy to describe?
• Scenario:
An Artist creates an art work
Given I am a registered artist
And I am on my dashboard
And I follow "Add an artwork" within "#dashboard"
When I fill in "Title" with "The Portrait"
And I fill in "Description" with "A nice portrait."
And I select "Painting" from "Category"
And I attach “portret.jpg" to "Select picture"
And I press "Create" Then I should see
"The Portrait " was successfully added to your art collection
Slide 10
Slide 10 text
A Client and BDD is Face to Face
• With every new project I hoped that Cucumber can become one of the
communication tools between our team and the customer.
Only once I managed to get the customer write
the scenarios, however the quality wasn't good and they had to be
rewritten by a developer
• It was difficult to convince the customer to
review the scenarios on a daily basis. They preferred
writing a document or using a ticketing system like Redmine. The result is that
we have requirements in 2 places - tickets and scenarios
• Andrzej Krzywda
Slide 11
Slide 11 text
Are developers ready for BDD?
• A developer often writes specifications
• Specs are very detailed
• Scripts, scenarios or a manual?
• Easy to understand
Slide 12
Slide 12 text
BDD doesn’t show a real life
In BBD Scenario
NewOrderSingle
where
SecurityID=S1 and
Price=P1 and
Side=BUY and
Quantity=Q1
…
In Real Life
• Initialize TCP connection
• Send Logon to the GW
• Wait for Logon response
• Start sending HeartBeats
• Send NewOrderSingle with ….
Slide 13
Slide 13 text
Release
A Product is ready to use
BDD it’s a design tool