SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
5 Things 
Cucumber 
Is Bad At 
(& why that’s a 
good thing) 
By Richard Lawrence 
For CukeUp NYC, Sept 30, 2014
As we get started… 
Discuss with one or two people near you: 
What are some common complaints you 
hear (or say) about Cucumber?
Problems with My Car
Problems with My Car 
1. Doesn’t taste good 
2. Doesn’t fit in my carry-on luggage 
3. Buggy entertainment system 
4. Some people think it’s ugly 
5. Bigger than most other cars 
6. Relatively low gas mileage
Two kinds of 
Weaknesses 
Those that represent 
opportunities for 
improvement 
Those that teach us 
what the thing is & 
what we do or don’t 
need
5 “Problems” with Cucumber 
that can teach us 
about Cucumber, 
BDD, and us
“Problems” with Cucumber #1 
Gherkin isn’t a very powerful language. 
Where are my Gherkin 
macros? How am I 
supposed to program 
with this?
“Problems” with Cucumber #2 
I have to describe things in 2 places. 
Background: 
Given 
a 
provider 
named 
"Complex 
Schedule 
Provider" 
serving: 
| 
From 
| 
To 
| 
When 
| 
Both 
Ways? 
| 
| 
Boulder 
| 
Boulder 
| 
M-­‐F 
7:30am-­‐5pm 
| 
yes 
| 
| 
Boulder 
| 
Lafayette 
| 
M 
7:30am-­‐5pm; 
W 
7:30am-­‐5pm 
| 
yes 
| 
| 
Boulder 
| 
Louisville 
| 
M-­‐F 
7:30am-­‐5pm 
| 
no 
| 
And 
I'm 
logged 
in 
as 
a 
non-­‐admin 
user 
Given 
/^a 
provider 
named 
"([^"]*)" 
serving:$/ 
do 
|provider_name, 
schedule| 
# 
... 
end 
Given 
/I'm 
logged 
in 
as 
a 
non-­‐admin 
user/ 
do 
# 
... 
end
“Problems” with Cucumber #3 
Step definitions are all global. 
Why don’t I get 
namespaces? Won’t this 
lead to ambiguity?
“Problems” with Cucumber #4 
Regular expressions. 
(?:[a-­‐z0-­‐9!#$%&'*+/=?^_`{|}~-­‐]+(?:.[a-­‐z0-­‐9!#$%&'*+/=? 
^_`{|}~-­‐]+)*|"(?:[x01-­‐x08x0bx0cx0e-­‐x1fx21x23-­‐x5bx5d-­‐x7f]| 
[x01-­‐x09x0bx0cx0e-­‐x7f])*")@(?:(?:[a-­‐z0-­‐9](?:[a-­‐z0-­‐9-­‐]*[a-­‐ 
z0-­‐9])?.)+[a-­‐z0-­‐9](?:[a-­‐z0-­‐9-­‐]*[a-­‐z0-­‐9])?|[(?:(?:25[0-­‐5]| 
2[0-­‐4][0-­‐9]|[01]?[0-­‐9][0-­‐9]?).){3}(?:25[0-­‐5]|2[0-­‐4][0-­‐9]| 
[01]?[0-­‐9][0-­‐9]?|[a-­‐z0-­‐9-­‐]*[a-­‐z0-­‐9]:(?:[x01-­‐x08x0bx0cx0e-­‐ 
x1fx21-­‐x5ax53-­‐x7f]|[x01-­‐x09x0bx0cx0e-­‐x7f])+)])
“Problems” with Cucumber #4 
Regular expressions. 
(.+) 
cucumbers? 
an? 
(d+) 
(?:I'm 
logged|I 
log) 
See 
h%p://www.agileforall.com/2010/07/ 
just-­‐enough-­‐regular-­‐expressions-­‐for-­‐cucumber/
“Problems” with Cucumber #5 
My stakeholders won’t write feature files. 
Doesn’t it defeat the purpose 
of Gherkin and separate 
feature files if I still have to 
write it all anyway?
SO What?
Questions? 
Contact me… 
Twitter: @rslawrence 
Email: richard.lawrence@agileforall.com 
Blog: www.richardlawrence.info

Más contenido relacionado

Similar a 5 things cucumber is bad at by Richard Lawrence

Testing antipatterns
Testing antipatternsTesting antipatterns
Testing antipatternsArdesco
 
English For IT Starter Module 2.pptx
English For IT Starter Module 2.pptxEnglish For IT Starter Module 2.pptx
English For IT Starter Module 2.pptxAnna Gandrabura
 
7 Wastes of Software Development
7 Wastes of Software Development7 Wastes of Software Development
7 Wastes of Software DevelopmentSunil Bajari
 
RSC SE Teaching toolkit no 8 Todaysmeet, QR codes and Slideshare - Jane Macke...
RSC SE Teaching toolkit no 8 Todaysmeet, QR codes and Slideshare - Jane Macke...RSC SE Teaching toolkit no 8 Todaysmeet, QR codes and Slideshare - Jane Macke...
RSC SE Teaching toolkit no 8 Todaysmeet, QR codes and Slideshare - Jane Macke...Jane Mackenzie
 
English lesson 2 by Lana Voinova
English lesson 2 by Lana VoinovaEnglish lesson 2 by Lana Voinova
English lesson 2 by Lana VoinovaStas Kremnev
 
Work From Home Guide For Filipinos 0225
Work From Home Guide For Filipinos 0225Work From Home Guide For Filipinos 0225
Work From Home Guide For Filipinos 0225workingpinoy
 
Chef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous IntegrationChef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous IntegrationJulian Dunn
 
Module_4 English For IT Starter.pdf.pdf
Module_4 English For IT Starter.pdf.pdfModule_4 English For IT Starter.pdf.pdf
Module_4 English For IT Starter.pdf.pdfAnna Gandrabura
 
Easy speak in 5 easy steps by joanne keevers
Easy speak in 5 easy steps by joanne keeversEasy speak in 5 easy steps by joanne keevers
Easy speak in 5 easy steps by joanne keeverstraining4easyspeak
 
Wolfpack at lewis creek orientation
Wolfpack at lewis creek orientationWolfpack at lewis creek orientation
Wolfpack at lewis creek orientationJamie Wolf
 
Upward Bound Math and Science Summer Academy
 Upward Bound  Math and Science Summer Academy  Upward Bound  Math and Science Summer Academy
Upward Bound Math and Science Summer Academy Berea College
 
How to Gather Useful, Usable Customer Satisfaction Feedback
How to Gather Useful, Usable Customer Satisfaction FeedbackHow to Gather Useful, Usable Customer Satisfaction Feedback
How to Gather Useful, Usable Customer Satisfaction FeedbackNaomi Karten
 
Building an A/B Testing Analytics System with R and Shiny
Building an A/B Testing Analytics System with R and ShinyBuilding an A/B Testing Analytics System with R and Shiny
Building an A/B Testing Analytics System with R and ShinyEmily Robinson
 
Software development and Sambar - what's the connection ?
Software development and Sambar - what's the connection ?Software development and Sambar - what's the connection ?
Software development and Sambar - what's the connection ?Dasarathi GV
 
SXSW Workshop on Designing for Behavior Change (2014)
SXSW Workshop on Designing for Behavior Change (2014)SXSW Workshop on Designing for Behavior Change (2014)
SXSW Workshop on Designing for Behavior Change (2014)Stephen Wendel
 
Skillwise - Business writing
Skillwise - Business writing Skillwise - Business writing
Skillwise - Business writing Skillwise Group
 

Similar a 5 things cucumber is bad at by Richard Lawrence (19)

Testing antipatterns
Testing antipatternsTesting antipatterns
Testing antipatterns
 
Developing software 2013
Developing software 2013Developing software 2013
Developing software 2013
 
English For IT Starter Module 2.pptx
English For IT Starter Module 2.pptxEnglish For IT Starter Module 2.pptx
English For IT Starter Module 2.pptx
 
7 Wastes of Software Development
7 Wastes of Software Development7 Wastes of Software Development
7 Wastes of Software Development
 
Unit 13 l04 and l05
Unit 13 l04 and l05Unit 13 l04 and l05
Unit 13 l04 and l05
 
RSC SE Teaching toolkit no 8 Todaysmeet, QR codes and Slideshare - Jane Macke...
RSC SE Teaching toolkit no 8 Todaysmeet, QR codes and Slideshare - Jane Macke...RSC SE Teaching toolkit no 8 Todaysmeet, QR codes and Slideshare - Jane Macke...
RSC SE Teaching toolkit no 8 Todaysmeet, QR codes and Slideshare - Jane Macke...
 
English lesson 2 by Lana Voinova
English lesson 2 by Lana VoinovaEnglish lesson 2 by Lana Voinova
English lesson 2 by Lana Voinova
 
Work From Home Guide For Filipinos 0225
Work From Home Guide For Filipinos 0225Work From Home Guide For Filipinos 0225
Work From Home Guide For Filipinos 0225
 
Chef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous IntegrationChef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous Integration
 
Unit 13 lo5 powerpoint
Unit 13 lo5 powerpointUnit 13 lo5 powerpoint
Unit 13 lo5 powerpoint
 
Module_4 English For IT Starter.pdf.pdf
Module_4 English For IT Starter.pdf.pdfModule_4 English For IT Starter.pdf.pdf
Module_4 English For IT Starter.pdf.pdf
 
Easy speak in 5 easy steps by joanne keevers
Easy speak in 5 easy steps by joanne keeversEasy speak in 5 easy steps by joanne keevers
Easy speak in 5 easy steps by joanne keevers
 
Wolfpack at lewis creek orientation
Wolfpack at lewis creek orientationWolfpack at lewis creek orientation
Wolfpack at lewis creek orientation
 
Upward Bound Math and Science Summer Academy
 Upward Bound  Math and Science Summer Academy  Upward Bound  Math and Science Summer Academy
Upward Bound Math and Science Summer Academy
 
How to Gather Useful, Usable Customer Satisfaction Feedback
How to Gather Useful, Usable Customer Satisfaction FeedbackHow to Gather Useful, Usable Customer Satisfaction Feedback
How to Gather Useful, Usable Customer Satisfaction Feedback
 
Building an A/B Testing Analytics System with R and Shiny
Building an A/B Testing Analytics System with R and ShinyBuilding an A/B Testing Analytics System with R and Shiny
Building an A/B Testing Analytics System with R and Shiny
 
Software development and Sambar - what's the connection ?
Software development and Sambar - what's the connection ?Software development and Sambar - what's the connection ?
Software development and Sambar - what's the connection ?
 
SXSW Workshop on Designing for Behavior Change (2014)
SXSW Workshop on Designing for Behavior Change (2014)SXSW Workshop on Designing for Behavior Change (2014)
SXSW Workshop on Designing for Behavior Change (2014)
 
Skillwise - Business writing
Skillwise - Business writing Skillwise - Business writing
Skillwise - Business writing
 

Más de Skills Matter

Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applicationsSkills Matter
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmSkills Matter
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimSkills Matter
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Skills Matter
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlSkills Matter
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsSkills Matter
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Skills Matter
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Skills Matter
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldSkills Matter
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Skills Matter
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Skills Matter
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingSkills Matter
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveSkills Matter
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tSkills Matter
 
Bootstrapping a-devops-matter
Bootstrapping a-devops-matterBootstrapping a-devops-matter
Bootstrapping a-devops-matterSkills Matter
 

Más de Skills Matter (20)

Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applications
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberl
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.js
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source world
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testing
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
 
Serendipity-neo4j
Serendipity-neo4jSerendipity-neo4j
Serendipity-neo4j
 
Plug 20110217
Plug   20110217Plug   20110217
Plug 20110217
 
Lug presentation
Lug presentationLug presentation
Lug presentation
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
 
Plug saiku
Plug   saikuPlug   saiku
Plug saiku
 
Huguk lily
Huguk lilyHuguk lily
Huguk lily
 
Bootstrapping a-devops-matter
Bootstrapping a-devops-matterBootstrapping a-devops-matter
Bootstrapping a-devops-matter
 

Último

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 

Último (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 

5 things cucumber is bad at by Richard Lawrence

  • 1. 5 Things Cucumber Is Bad At (& why that’s a good thing) By Richard Lawrence For CukeUp NYC, Sept 30, 2014
  • 2. As we get started… Discuss with one or two people near you: What are some common complaints you hear (or say) about Cucumber?
  • 4. Problems with My Car 1. Doesn’t taste good 2. Doesn’t fit in my carry-on luggage 3. Buggy entertainment system 4. Some people think it’s ugly 5. Bigger than most other cars 6. Relatively low gas mileage
  • 5. Two kinds of Weaknesses Those that represent opportunities for improvement Those that teach us what the thing is & what we do or don’t need
  • 6. 5 “Problems” with Cucumber that can teach us about Cucumber, BDD, and us
  • 7. “Problems” with Cucumber #1 Gherkin isn’t a very powerful language. Where are my Gherkin macros? How am I supposed to program with this?
  • 8. “Problems” with Cucumber #2 I have to describe things in 2 places. Background: Given a provider named "Complex Schedule Provider" serving: | From | To | When | Both Ways? | | Boulder | Boulder | M-­‐F 7:30am-­‐5pm | yes | | Boulder | Lafayette | M 7:30am-­‐5pm; W 7:30am-­‐5pm | yes | | Boulder | Louisville | M-­‐F 7:30am-­‐5pm | no | And I'm logged in as a non-­‐admin user Given /^a provider named "([^"]*)" serving:$/ do |provider_name, schedule| # ... end Given /I'm logged in as a non-­‐admin user/ do # ... end
  • 9. “Problems” with Cucumber #3 Step definitions are all global. Why don’t I get namespaces? Won’t this lead to ambiguity?
  • 10. “Problems” with Cucumber #4 Regular expressions. (?:[a-­‐z0-­‐9!#$%&'*+/=?^_`{|}~-­‐]+(?:.[a-­‐z0-­‐9!#$%&'*+/=? ^_`{|}~-­‐]+)*|"(?:[x01-­‐x08x0bx0cx0e-­‐x1fx21x23-­‐x5bx5d-­‐x7f]| [x01-­‐x09x0bx0cx0e-­‐x7f])*")@(?:(?:[a-­‐z0-­‐9](?:[a-­‐z0-­‐9-­‐]*[a-­‐ z0-­‐9])?.)+[a-­‐z0-­‐9](?:[a-­‐z0-­‐9-­‐]*[a-­‐z0-­‐9])?|[(?:(?:25[0-­‐5]| 2[0-­‐4][0-­‐9]|[01]?[0-­‐9][0-­‐9]?).){3}(?:25[0-­‐5]|2[0-­‐4][0-­‐9]| [01]?[0-­‐9][0-­‐9]?|[a-­‐z0-­‐9-­‐]*[a-­‐z0-­‐9]:(?:[x01-­‐x08x0bx0cx0e-­‐ x1fx21-­‐x5ax53-­‐x7f]|[x01-­‐x09x0bx0cx0e-­‐x7f])+)])
  • 11. “Problems” with Cucumber #4 Regular expressions. (.+) cucumbers? an? (d+) (?:I'm logged|I log) See h%p://www.agileforall.com/2010/07/ just-­‐enough-­‐regular-­‐expressions-­‐for-­‐cucumber/
  • 12. “Problems” with Cucumber #5 My stakeholders won’t write feature files. Doesn’t it defeat the purpose of Gherkin and separate feature files if I still have to write it all anyway?
  • 14. Questions? Contact me… Twitter: @rslawrence Email: richard.lawrence@agileforall.com Blog: www.richardlawrence.info