SlideShare ist ein Scribd-Unternehmen logo
BDD

Micha Trieba I 22.09.2011




                            © Mayflower GmbH 2011
BDD mein Nutzen heute



Um wie viel bin ich hinterher schlauer:

BDD
Gherkin
Behat




                                          Mayflower GmbH I 2
Test Driven Development




                          Mayflower GmbH I 3
Mayflower GmbH I 4
Behaviour Driven Development




                               Mayflower GmbH I 5
Dan North
ThoughtWorks,
DRW Trading Group

http://dannorth.net/

„It's all behaviour“

JBehave

http://dannorth.net/introducing-bdd/
http://dannorth.net/whats-in-a-story/




                                        Mayflower GmbH I 6
escape the dual gumption traps of “that’s not
                what I asked for”
                        or
  “I forgot to tell you about this other thing”


                                     Dan North

                                         Mayflower GmbH I 7
Create software that matters




                          Dan North

                               Mayflower GmbH I 8
Mayflower GmbH I 9
Agile acceptance testing
Acceptance Test Driven Development
   Example Driven Development
            Story testing
     Specification by Example




                                     Mayflower GmbH I 10
specification by example: key process patterns




                                      Nach: Gojko Adzic, Specification by Example

                                                                        Mayflower GmbH I 11
Agile




        Mayflower GmbH I 12
Story = feature

As a [role]
I want [feature]
So that [benefit, business value]




                                    Mayflower GmbH I 13
Acceptance Criteria = Scenario

    Scenario 1
        Step a
        Step b
    Scenario 2
        Step a
        Step b




                                 Mayflower GmbH I 14
Step definition
Given [context]
  And [some more context]
When [event]
    And [another event]
Then [outcome]
  And [another outcome]




                            Mayflower GmbH I 15
Gherkin




          Mayflower GmbH I 16
Behat
Konstantin Kudryashov
Senior from-birth PHP
Developer bei KnpLabs

„everzet“




                        Mayflower GmbH I 17
Behat Installation



http://behat.org/
Quick Intro, Cookbook, Manual


pear channel-discover pear.behat.org
pear install behat/behat


git clone http://github.com/Behat/Behat




                                          Mayflower GmbH I 18
Mayflower GmbH I 19
Workflow – outside in




                        Quelle: The Rspec Book, David Chelimsky et al.


                                                                 Mayflower GmbH I 20
Story




        Mayflower GmbH I 21
Scenario




           Mayflower GmbH I 22
Run behat




            Mayflower GmbH I 23
Steps




        Mayflower GmbH I 24
Run behat




            Mayflower GmbH I 25
Complete steps




                 Mayflower GmbH I 26
Implement code and tests




                           Mayflower GmbH I 27
Outline pending




                  Mayflower GmbH I 28
Outline passed




                 Mayflower GmbH I 29
Outline passed




                 Mayflower GmbH I 30
Mehr Behat


Bootstrap




             Mayflower GmbH I 31
Mehr Behat




             Mayflower GmbH I 32
Hooks




        Quelle: www.behat.org


                   Mayflower GmbH I 33
Noch mehr Behat



I Tags: behat -tag='@myTag'
I Name: behat -name='my scenario'
I Ausgabe als junit: behat -out='junit'
I Profile: behat -profile='myProfile'
I Feature: behat /features/myfeature.feature:30




                                                  Mayflower GmbH I 34
BDD in der Praxis: Jimdo GmbH



I BDD kann auch in laufenden Projekte integriert werden
I Voraussetzung ist eine Story-basierte Struktur
I BDD muss, wie auch z.B. Scrum, gelebt werden
I BDD schafft eine gute Voraussetzung für weitere Automatisierungen, z.B.
  Selenium
I BDD ermöglicht eine Abstraktion, die Teilaspekte besser sichtbar macht
I Probleme bereiten
   · Legacy Code
   · Mehrsprachigkeit (z.B. ein japanisches und ein deutsches Team)

                                                                      Mayflower GmbH I 35
BDD Literatur



I The Rspec Book, David Chelimsky et al.


I Specification By Example, Gojko Adzic


I Growing Object-Oriented Software, Guided By Tests,
  Stefe Freemen, Nat Pryce




                                                       Mayflower GmbH I 36
Vielen Dank für Ihre Aufmerksamkeit!




      Referent   Micha Trieba
                 micha.trieba@mayflower.de
                 +49 89 242054 1168

                 Mayflower GmbH
                 Mannhardtstrasse6
                 80538 München

27.09.2011                             Mayflower GmbH   37

Weitere ähnliche Inhalte

Ähnlich wie BDD

Responsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy StrategienResponsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy Strategien
Johannes Weber
 
Verteiltes Verarbeiten von riesigen Datenmengen mittels Hadoop
Verteiltes Verarbeiten von riesigen Datenmengen mittels HadoopVerteiltes Verarbeiten von riesigen Datenmengen mittels Hadoop
Verteiltes Verarbeiten von riesigen Datenmengen mittels HadoopMayflower GmbH
 
Javascript debugging logging
Javascript debugging loggingJavascript debugging logging
Javascript debugging logging
Mayflower GmbH
 
Mobile Anwendungsentwicklung mit Webtechnologien
Mobile Anwendungsentwicklung mit WebtechnologienMobile Anwendungsentwicklung mit Webtechnologien
Mobile Anwendungsentwicklung mit Webtechnologien
Mayflower GmbH
 
JS Best Practises Debugging und Logging
JS Best Practises Debugging und LoggingJS Best Practises Debugging und Logging
JS Best Practises Debugging und Logging
Mayflower GmbH
 
FastCGI Process Manager
FastCGI Process ManagerFastCGI Process Manager
FastCGI Process ManagerMayflower GmbH
 
Disruptive Kraft von Open Source im E-Commerce - Meet Magento
Disruptive Kraft von Open Source im E-Commerce - Meet MagentoDisruptive Kraft von Open Source im E-Commerce - Meet Magento
Disruptive Kraft von Open Source im E-Commerce - Meet Magento
Mayflower GmbH
 
NetworkCamp: webthinking
NetworkCamp: webthinkingNetworkCamp: webthinking
NetworkCamp: webthinking
Tobias Teutsch
 
Agiles Management Methoden und Tools für die VUKA Welt
Agiles Management Methoden und Tools für die VUKA WeltAgiles Management Methoden und Tools für die VUKA Welt
Agiles Management Methoden und Tools für die VUKA Welt
Rainer Simmoleit
 
Mobile Anwendungen mit SenchaTouch
Mobile Anwendungen mit SenchaTouchMobile Anwendungen mit SenchaTouch
Mobile Anwendungen mit SenchaTouch
Mayflower GmbH
 
Getting things done
Getting things doneGetting things done
Getting things done
Mayflower GmbH
 
Inhaltliche und grafische Zusammenfassung des Werbeplanungssummit 2013
Inhaltliche und grafische Zusammenfassung des Werbeplanungssummit 2013Inhaltliche und grafische Zusammenfassung des Werbeplanungssummit 2013
Inhaltliche und grafische Zusammenfassung des Werbeplanungssummit 2013
Sery* Creative Communications
 
Shell Fu for Developers
Shell Fu for DevelopersShell Fu for Developers
Shell Fu for Developers
Mayflower GmbH
 
Guest Lecture 2011.06 - Georg Greve - Mit FOSS Geld verdienen (Digital Sustai...
Guest Lecture 2011.06 - Georg Greve - Mit FOSS Geld verdienen (Digital Sustai...Guest Lecture 2011.06 - Georg Greve - Mit FOSS Geld verdienen (Digital Sustai...
Guest Lecture 2011.06 - Georg Greve - Mit FOSS Geld verdienen (Digital Sustai...Marcus Dapp
 
Mayflower Mobile Apps Entwickeln
Mayflower Mobile Apps EntwickelnMayflower Mobile Apps Entwickeln
Mayflower Mobile Apps Entwickeln
Mayflower GmbH
 
Enterprise 2.0 Wettbewerbsvorteile Durch Social Media
Enterprise 2.0 Wettbewerbsvorteile Durch Social MediaEnterprise 2.0 Wettbewerbsvorteile Durch Social Media
Enterprise 2.0 Wettbewerbsvorteile Durch Social Mediaolivernitz
 
Responsive Webdesign
Responsive WebdesignResponsive Webdesign
Responsive Webdesign
Mayflower GmbH
 

Ähnlich wie BDD (17)

Responsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy StrategienResponsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy Strategien
 
Verteiltes Verarbeiten von riesigen Datenmengen mittels Hadoop
Verteiltes Verarbeiten von riesigen Datenmengen mittels HadoopVerteiltes Verarbeiten von riesigen Datenmengen mittels Hadoop
Verteiltes Verarbeiten von riesigen Datenmengen mittels Hadoop
 
Javascript debugging logging
Javascript debugging loggingJavascript debugging logging
Javascript debugging logging
 
Mobile Anwendungsentwicklung mit Webtechnologien
Mobile Anwendungsentwicklung mit WebtechnologienMobile Anwendungsentwicklung mit Webtechnologien
Mobile Anwendungsentwicklung mit Webtechnologien
 
JS Best Practises Debugging und Logging
JS Best Practises Debugging und LoggingJS Best Practises Debugging und Logging
JS Best Practises Debugging und Logging
 
FastCGI Process Manager
FastCGI Process ManagerFastCGI Process Manager
FastCGI Process Manager
 
Disruptive Kraft von Open Source im E-Commerce - Meet Magento
Disruptive Kraft von Open Source im E-Commerce - Meet MagentoDisruptive Kraft von Open Source im E-Commerce - Meet Magento
Disruptive Kraft von Open Source im E-Commerce - Meet Magento
 
NetworkCamp: webthinking
NetworkCamp: webthinkingNetworkCamp: webthinking
NetworkCamp: webthinking
 
Agiles Management Methoden und Tools für die VUKA Welt
Agiles Management Methoden und Tools für die VUKA WeltAgiles Management Methoden und Tools für die VUKA Welt
Agiles Management Methoden und Tools für die VUKA Welt
 
Mobile Anwendungen mit SenchaTouch
Mobile Anwendungen mit SenchaTouchMobile Anwendungen mit SenchaTouch
Mobile Anwendungen mit SenchaTouch
 
Getting things done
Getting things doneGetting things done
Getting things done
 
Inhaltliche und grafische Zusammenfassung des Werbeplanungssummit 2013
Inhaltliche und grafische Zusammenfassung des Werbeplanungssummit 2013Inhaltliche und grafische Zusammenfassung des Werbeplanungssummit 2013
Inhaltliche und grafische Zusammenfassung des Werbeplanungssummit 2013
 
Shell Fu for Developers
Shell Fu for DevelopersShell Fu for Developers
Shell Fu for Developers
 
Guest Lecture 2011.06 - Georg Greve - Mit FOSS Geld verdienen (Digital Sustai...
Guest Lecture 2011.06 - Georg Greve - Mit FOSS Geld verdienen (Digital Sustai...Guest Lecture 2011.06 - Georg Greve - Mit FOSS Geld verdienen (Digital Sustai...
Guest Lecture 2011.06 - Georg Greve - Mit FOSS Geld verdienen (Digital Sustai...
 
Mayflower Mobile Apps Entwickeln
Mayflower Mobile Apps EntwickelnMayflower Mobile Apps Entwickeln
Mayflower Mobile Apps Entwickeln
 
Enterprise 2.0 Wettbewerbsvorteile Durch Social Media
Enterprise 2.0 Wettbewerbsvorteile Durch Social MediaEnterprise 2.0 Wettbewerbsvorteile Durch Social Media
Enterprise 2.0 Wettbewerbsvorteile Durch Social Media
 
Responsive Webdesign
Responsive WebdesignResponsive Webdesign
Responsive Webdesign
 

Mehr von Mayflower GmbH

Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mayflower GmbH
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
Mayflower GmbH
 
Agile Anti-Patterns
Agile Anti-PatternsAgile Anti-Patterns
Agile Anti-Patterns
Mayflower GmbH
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: Security
Mayflower GmbH
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur Führungskraft
Mayflower GmbH
 
Produktive teams
Produktive teamsProduktive teams
Produktive teams
Mayflower GmbH
 
Salt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientSalt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native Client
Mayflower GmbH
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
Mayflower GmbH
 
Usability im web
Usability im webUsability im web
Usability im web
Mayflower GmbH
 
Rewrites überleben
Rewrites überlebenRewrites überleben
Rewrites überleben
Mayflower GmbH
 
JavaScript Security
JavaScript SecurityJavaScript Security
JavaScript Security
Mayflower GmbH
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
Mayflower GmbH
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Mayflower GmbH
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming Mythbusters
Mayflower GmbH
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im Glück
Mayflower GmbH
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefern
Mayflower GmbH
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 Sprints
Mayflower GmbH
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalieren
Mayflower GmbH
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce Breakfast
Mayflower GmbH
 
Mongo DB - Segen oder Fluch
Mongo DB - Segen oder FluchMongo DB - Segen oder Fluch
Mongo DB - Segen oder Fluch
Mayflower GmbH
 

Mehr von Mayflower GmbH (20)

Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
 
Agile Anti-Patterns
Agile Anti-PatternsAgile Anti-Patterns
Agile Anti-Patterns
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: Security
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur Führungskraft
 
Produktive teams
Produktive teamsProduktive teams
Produktive teams
 
Salt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientSalt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native Client
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
 
Usability im web
Usability im webUsability im web
Usability im web
 
Rewrites überleben
Rewrites überlebenRewrites überleben
Rewrites überleben
 
JavaScript Security
JavaScript SecurityJavaScript Security
JavaScript Security
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming Mythbusters
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im Glück
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefern
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 Sprints
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalieren
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce Breakfast
 
Mongo DB - Segen oder Fluch
Mongo DB - Segen oder FluchMongo DB - Segen oder Fluch
Mongo DB - Segen oder Fluch
 

BDD