SlideShare a Scribd company logo
1 of 20
Download to read offline
Creating
         Cucumbers
        collaboration   language
        discussion      value
        customers       acceptance
Elise                                Joseph
Huard                                 Wilk
Cucumber Feature
             Feature: Be awesome          Not
               Narrative                executed
Example of
             Scenario: title
behaviour
                       which rocks
               Given <some context>
               And <yet more context>
               When <some action>
 Steps
               And <more actions>
               Then <some outcome>
               And <more outcomes>
Cucumber Feature
             Feature: Be awesome          Not
               Narrative                executed
Example of
             Scenario: title
behaviour
                       which rocks
               Given <some context>
               And <yet more context>
               When <some action>
 Steps
               And <more actions>
               Then <some outcome>
               And <more outcomes>
Plaintext




Ruby               Plaintext
       Plaintext


        Ruby
        Ruby
Plaintext

Step   Given we like cukes




              Ruby               Plaintext
                     Plaintext


                      Ruby
                      Ruby
Plaintext

  Step      Given we like cukes




                   Ruby               Plaintext
                          Plaintext
  Step      Given /^we like (.*)$/i do |fruit|
definition     fruit.should == 'cukes'
            end

                           Ruby
                           Ruby
Plaintext

  Step      Given we like cukes




                                               regexp match
                   Ruby               Plaintext
                          Plaintext
  Step      Given /^we like (.*)$/i do |fruit|
definition     fruit.should == 'cukes'
            end

                           Ruby
                           Ruby
Cucumber
  Style?
Global regular-expressions



Unmaintainable                                      Flexibility
large step-definition files




                            Problems

 Complex regular-expressions
                                      Coverage vs. Speed tradeoffs
 are hard to read
Workshop:
“The writing’s
 on the wall”
                 5mins per
                  example
Gherkin writing
  workshop


                  20mins
Go - Weiqi - Baduk
Feature
 The Rules of Go
In order to prevent invalid moves

As a GoVsGO website member

I want the rules of Go enforced.
Go Rules
Capture
After playing his stone a player removes from the board any stones of his
opponent's colour that have no liberties.

Suicide
A player cannot place a stone that would result in the capture of their own
stones

Ko
One may not play in such a way as to recreate the board position following one's
previous move

Ending
The game ends when both players have passed consecutively
How tasty is your
  Cucumber?

 yum
Does not dictate        Not Exhaustive, key examples
integration testing             (Maths book)




                      Learnings

 Allow features
                                          Why?
   to breathe
The Art of Cucumber
September 27th
Skillsmatters

   http://theartofcucumber.eventbrite.com
Thanks
                                   Its been
                                  emotional




        Joseph Wilk                Elise Huard
http://blog.josephwilk.net   http://jabberwocky.eu
       @josephwilk               @elise_huard

More Related Content

More from Joseph Wilk

Testing outside of the Ruby World
Testing outside of the Ruby WorldTesting outside of the Ruby World
Testing outside of the Ruby World
Joseph Wilk
 
Rubyconf lightning talk
Rubyconf lightning talkRubyconf lightning talk
Rubyconf lightning talk
Joseph Wilk
 
Acceptance testing in the land of the startup
Acceptance testing in the land of the startupAcceptance testing in the land of the startup
Acceptance testing in the land of the startup
Joseph Wilk
 
Cucumber Patterns Workshop
Cucumber Patterns WorkshopCucumber Patterns Workshop
Cucumber Patterns Workshop
Joseph Wilk
 
Dynamic Workflow Pulling the Strings
Dynamic Workflow Pulling the StringsDynamic Workflow Pulling the Strings
Dynamic Workflow Pulling the Strings
Joseph Wilk
 

More from Joseph Wilk (13)

Acceptance testing in the land of the startup
Acceptance testing in the land of the startup Acceptance testing in the land of the startup
Acceptance testing in the land of the startup
 
Rubykaigi 2011 Limited Red talk
Rubykaigi 2011 Limited Red talkRubykaigi 2011 Limited Red talk
Rubykaigi 2011 Limited Red talk
 
The Limited Red Society
The Limited Red SocietyThe Limited Red Society
The Limited Red Society
 
The Limited Red Society
The Limited Red Society The Limited Red Society
The Limited Red Society
 
Testing outside of the Ruby World
Testing outside of the Ruby WorldTesting outside of the Ruby World
Testing outside of the Ruby World
 
Rubyconf lightning talk
Rubyconf lightning talkRubyconf lightning talk
Rubyconf lightning talk
 
Acceptance testing in the land of the startup
Acceptance testing in the land of the startupAcceptance testing in the land of the startup
Acceptance testing in the land of the startup
 
Cucumber Patterns Workshop
Cucumber Patterns WorkshopCucumber Patterns Workshop
Cucumber Patterns Workshop
 
Musichackday
MusichackdayMusichackday
Musichackday
 
Rocket Fuelled Cucumbers
Rocket Fuelled CucumbersRocket Fuelled Cucumbers
Rocket Fuelled Cucumbers
 
Dynamic Workflow Pulling the Strings
Dynamic Workflow Pulling the StringsDynamic Workflow Pulling the Strings
Dynamic Workflow Pulling the Strings
 
Outside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and RspecOutside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and Rspec
 
Testing with Ruby
Testing with RubyTesting with Ruby
Testing with Ruby
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

Spa2011

  • 1. Creating Cucumbers collaboration language discussion value customers acceptance Elise Joseph Huard Wilk
  • 2. Cucumber Feature Feature: Be awesome Not Narrative executed Example of Scenario: title behaviour which rocks Given <some context> And <yet more context> When <some action> Steps And <more actions> Then <some outcome> And <more outcomes>
  • 3. Cucumber Feature Feature: Be awesome Not Narrative executed Example of Scenario: title behaviour which rocks Given <some context> And <yet more context> When <some action> Steps And <more actions> Then <some outcome> And <more outcomes>
  • 4. Plaintext Ruby Plaintext Plaintext Ruby Ruby
  • 5. Plaintext Step Given we like cukes Ruby Plaintext Plaintext Ruby Ruby
  • 6. Plaintext Step Given we like cukes Ruby Plaintext Plaintext Step Given /^we like (.*)$/i do |fruit| definition fruit.should == 'cukes' end Ruby Ruby
  • 7. Plaintext Step Given we like cukes regexp match Ruby Plaintext Plaintext Step Given /^we like (.*)$/i do |fruit| definition fruit.should == 'cukes' end Ruby Ruby
  • 9. Global regular-expressions Unmaintainable Flexibility large step-definition files Problems Complex regular-expressions Coverage vs. Speed tradeoffs are hard to read
  • 10. Workshop: “The writing’s on the wall” 5mins per example
  • 11. Gherkin writing workshop 20mins
  • 12. Go - Weiqi - Baduk
  • 13.
  • 14.
  • 15. Feature The Rules of Go In order to prevent invalid moves As a GoVsGO website member I want the rules of Go enforced.
  • 16. Go Rules Capture After playing his stone a player removes from the board any stones of his opponent's colour that have no liberties. Suicide A player cannot place a stone that would result in the capture of their own stones Ko One may not play in such a way as to recreate the board position following one's previous move Ending The game ends when both players have passed consecutively
  • 17. How tasty is your Cucumber? yum
  • 18. Does not dictate Not Exhaustive, key examples integration testing (Maths book) Learnings Allow features Why? to breathe
  • 19. The Art of Cucumber September 27th Skillsmatters http://theartofcucumber.eventbrite.com
  • 20. Thanks Its been emotional Joseph Wilk Elise Huard http://blog.josephwilk.net http://jabberwocky.eu @josephwilk @elise_huard