DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink
-
Upload
steffen-mueller -
Category
Technology
-
view
1.370 -
download
1
description
Transcript of DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink
![Page 1: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/1.jpg)
BDD - Behavior Driven Development
with Behat/Mink
Developers MeetUp Freiburg 06/2013
Developers MeetUp Freiburg
![Page 2: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/2.jpg)
Developers MeetUp Freiburg
Steffen Müller
/gebrüderheitz GmbHPHP Software Architect + Developer
@t3node // www.t3node.com
![Page 3: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/3.jpg)
Developers MeetUp Freiburg
Case Study
![Page 4: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/4.jpg)
Developers MeetUp Freiburg
“Simple” order form
![Page 5: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/5.jpg)
Developers MeetUp Freiburg
Related functional tests (Selenium)
![Page 6: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/6.jpg)
Developers MeetUp Freiburg
How the complexity felt like
Image by Kyle Lease CC BY-SA 2.0 http://www.flickr.com/photos/kl75214/
![Page 7: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/7.jpg)
Developers MeetUp Freiburg
Focus on requirements
instead of high coverage
![Page 8: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/8.jpg)
Developers MeetUp Freiburg
Behavior Driven
Development
![Page 9: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/9.jpg)
Developers MeetUp Freiburg
Behavior What?
![Page 10: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/10.jpg)
Developers MeetUp Freiburg
Analyze
Concept
Test
Coding
Linear progress
Sketch inspired by J. B. Rainsberger:http://www.jbrains.ca/permalink/how-test-driven-development-works-and-more
![Page 11: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/11.jpg)
Developers MeetUp Freiburg
Analyze Concept
Test Coding
Continuous Iteration
Shortcycles
Sketch inspired by J. B. Rainsberger:http://www.jbrains.ca/permalink/how-test-driven-development-works-and-more
![Page 12: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/12.jpg)
Developers MeetUp Freiburg
BDD
Building the
right things
TDD
Building the
things right
TDD or BDD?
![Page 13: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/13.jpg)
Developers MeetUp Freiburg
Communication
Images by Alberto Sanchis (MisteryCat)http://misterycat.deviantart.com/
Stakeholder
Developer
![Page 14: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/14.jpg)
Developers MeetUp Freiburg
Ubiquitous Language
User
Customer
Unregistereduser
New customer
Images by Alberto Sanchis (MisteryCat)http://misterycat.deviantart.com/
![Page 15: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/15.jpg)
Developers MeetUp Freiburg
Feature Description
![Page 16: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/16.jpg)
Developers MeetUp Freiburg
“As a [role]
I want [feature]
so that [benefit]”
Feature Description
![Page 17: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/17.jpg)
Developers MeetUp Freiburg
“As a [role]
I want [feature]
so that [benefit]”User Story
Feature Description
![Page 18: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/18.jpg)
Developers MeetUp Freiburg
“As a customer
I need a shopping cart
to check my selected products”
Example Feature Description
![Page 19: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/19.jpg)
Developers MeetUp Freiburg
Scenarios / Use cases
![Page 20: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/20.jpg)
Developers MeetUp Freiburg
Scenario: [Use Case]
Given... [Context]
When... [Event]
Then... [Result]
Scenario
![Page 21: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/21.jpg)
Developers MeetUp Freiburg
Scenario: See selected products in the
shopping cart
Given I visit the FooBar shop
And I add a “dishwasher” to my cart
When I go to the shopping cart
Then I should see a “dishwasher”
Example Scenario
![Page 22: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/22.jpg)
Developers MeetUp Freiburg
Scenario: Find a product in the shopping basket
Given I visit the FooBar shop
And I select a “dishwasher”
When I go to the shopping basket
Then I should see a “dishwasher”gherkinExample Scenario
![Page 23: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/23.jpg)
gherkin
Clearly structured language
Easy to understand
Easy to rephrase
Straightforward syntax
Executable steps
Developers MeetUp Freiburg
![Page 24: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/24.jpg)
Developers MeetUp Freiburg
BehatA php framework for testingbusiness expectations
![Page 25: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/25.jpg)
Developers MeetUp Freiburg
MinkAcceptance test frameworkfor web applications, written in PHP
BehatA php framework for testingbusiness expectations
![Page 26: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/26.jpg)
Developers MeetUp Freiburg
Live Demo
![Page 27: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/27.jpg)
Resources
BDD Introduction:http://dannorth.net/introducing-bdd/
Behat/Mink:http://behat.org/
bInit: kickstarter package for Behat:https://github.com/t3node/binit
Wynne + Hellesøy (2012):“The Cucumber Book”
Developers MeetUp Freiburg
![Page 28: DevsMeetUp Freiburg: Behavior Driven Development with Behat/Mink](https://reader033.fdocuments.net/reader033/viewer/2022060107/554bcaa8b4c9058f6c8b45e8/html5/thumbnails/28.jpg)
Developers MeetUp Freiburg
Thank You!
If you need BDD + Behat/Mink support, send me a mail:
Steffen Müller <[email protected]>