Slide 1

Slide 1 text

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

Slide 14

Slide 14 text

1770 year

Slide 15

Slide 15 text

2011 year

Slide 16

Slide 16 text

Thank you.