why do you say bdd if it is cucumber?

28
Why do you say BDD if it is Cucumber? Or How I Learned to Stop Worrying and Love the Behavior

Upload: enrique-sanchez

Post on 18-Nov-2014

414 views

Category:

Software


1 download

DESCRIPTION

How to define good features, scenarios and steps without care about the tool you are using.

TRANSCRIPT

Page 1: Why do you say BDD if it is Cucumber?

Why do you say BDD if it is Cucumber?

Or How I Learned to Stop Worrying and Love the Behavior

Page 2: Why do you say BDD if it is Cucumber?

Enrique SánchezTechnical Team Lead @ Medianet Software

Page 3: Why do you say BDD if it is Cucumber?

CUCUMBER =/= BDD

Page 4: Why do you say BDD if it is Cucumber?

BDD is a software development process Cucumber is a tool

Page 5: Why do you say BDD if it is Cucumber?

“”

All of these tools are great… but, in the end, tools are tools. While RSpec and Cucumber are optimized for BDD, using them doesn’t automatically mean you’re doing BDD.

Page 6: Why do you say BDD if it is Cucumber?

BDD is a MINDSET not a TOOL

Page 7: Why do you say BDD if it is Cucumber?

What the f**k is BDD then?

Page 8: Why do you say BDD if it is Cucumber?

Eng

ine

eri

ng Product

Page 9: Why do you say BDD if it is Cucumber?

Miscommunicationbetween stakeholders, product, devs…

Page 10: Why do you say BDD if it is Cucumber?

“”

56% of all bugs can be traced to errors made during the requirement stage.

Tom deMarco

Page 11: Why do you say BDD if it is Cucumber?

“ ”68% failed projects

Standish Group Report 2009

Page 12: Why do you say BDD if it is Cucumber?

How to solve this gap?

Page 13: Why do you say BDD if it is Cucumber?

Gherkin

Page 14: Why do you say BDD if it is Cucumber?

Define a narrativeWhy? Feature name, Actor, behavior, benefit What? Scenarios and steps

Page 15: Why do you say BDD if it is Cucumber?

Feature

In  order  to  Value proposition

As  a  Role/actor

I  want  to feature description

Page 16: Why do you say BDD if it is Cucumber?

Scenario

Given  setup

When  user  interaction/change

Then  outcome (assert)

Page 17: Why do you say BDD if it is Cucumber?

How to create a narrative?

Page 18: Why do you say BDD if it is Cucumber?

Forget the implementation

Who cares about code? Product and Marketing don’t think in code

Page 19: Why do you say BDD if it is Cucumber?

Define a featureStart with expectations Instead of setting state or user actions Keep Scenarios simple Split complicated workflows

Page 20: Why do you say BDD if it is Cucumber?

DeclarativeBe concise Don’t be Shakespeare Not unnecessary steps Remember YAGNI

Page 21: Why do you say BDD if it is Cucumber?

AbstractionDescribe a feature, not edge cases Think in requirements Only BDD the happy path There’re controller/model/view tests

Page 22: Why do you say BDD if it is Cucumber?

Assert only once

Only assert on Then steps No more user actions after a Then

Page 23: Why do you say BDD if it is Cucumber?

Now you can choose your tool

Page 24: Why do you say BDD if it is Cucumber?

Design, code, reuseUse the right tool for the right job What are you testing: web, mobile, service? Think in the language Ruby, Python, Java…

Page 25: Why do you say BDD if it is Cucumber?

Narratives

Examples Describe

ImplementEmergent Design

Page 26: Why do you say BDD if it is Cucumber?

BDD Club Rules

The first rule is you have to talk The second stories should speak with the customers terminology The third rule stories are not specs The fourth rule keep the story goals as real values for the customer The fifth rule stories should not be exhaustive The sixth rule stories should not be too low level or high level The seventh rule stories should slice through multiple layers The eighth, if it’s your first day you have to talk and ask

Page 27: Why do you say BDD if it is Cucumber?

Questions?Thank you!

Page 28: Why do you say BDD if it is Cucumber?

Enrique Sánchez | [email protected] | @EnriqueSanchezB