why do you say bdd if it is cucumber?
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?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/1.jpg)
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?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/2.jpg)
Enrique SánchezTechnical Team Lead @ Medianet Software
![Page 3: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/3.jpg)
CUCUMBER =/= BDD
![Page 4: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/4.jpg)
BDD is a software development process Cucumber is a tool
![Page 5: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/5.jpg)
“”
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?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/6.jpg)
BDD is a MINDSET not a TOOL
![Page 7: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/7.jpg)
What the f**k is BDD then?
![Page 8: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/8.jpg)
Eng
ine
eri
ng Product
![Page 9: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/9.jpg)
Miscommunicationbetween stakeholders, product, devs…
![Page 10: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/10.jpg)
“”
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?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/11.jpg)
“ ”68% failed projects
Standish Group Report 2009
![Page 12: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/12.jpg)
How to solve this gap?
![Page 13: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/13.jpg)
Gherkin
![Page 14: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/14.jpg)
Define a narrativeWhy? Feature name, Actor, behavior, benefit What? Scenarios and steps
![Page 15: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/15.jpg)
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?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/16.jpg)
Scenario
Given setup
When user interaction/change
Then outcome (assert)
![Page 17: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/17.jpg)
How to create a narrative?
![Page 18: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/18.jpg)
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?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/19.jpg)
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?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/20.jpg)
DeclarativeBe concise Don’t be Shakespeare Not unnecessary steps Remember YAGNI
![Page 21: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/21.jpg)
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?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/22.jpg)
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?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/23.jpg)
Now you can choose your tool
![Page 24: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/24.jpg)
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?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/25.jpg)
Narratives
Examples Describe
ImplementEmergent Design
![Page 26: Why do you say BDD if it is Cucumber?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/26.jpg)
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?](https://reader034.vdocuments.mx/reader034/viewer/2022042623/546dc5cfaf795985298b54f4/html5/thumbnails/27.jpg)
Questions?Thank you!