SlideShare a Scribd company logo
 
Dima Kovalenko @dimacus www.agilesoftwaretesting.com www.dimakovalenko.com linked in.com/in/dimakovalen ko
Past Experience
Disclaimer > Dima.kind_of?(Developer) => false
Why automated tests?
Why automated tests? Too expensive Too much work to create Not enough staff to maintain Never know the coverage level No one but developers knows what is being tested
We don’t need Automated Tests!
We don’t need Automated Tests! The End See You all at Selenium 2012!
 
Selenium and Cucumber Img Source: http://pickledillies.homestead.com/
Overview Set the stage Introduce Cucumber Good features Bad features ??? Profit!
Assumptions Startup or small business Understaffed Inadequate test coverage Need to defend existence of having automated tests to business.
The Stage
The Stage First casualty of an agile development environment is documentation.   - me
The Stage First casualty of an agile development environment is documentation.   - me No written test cases to speak of
The Stage First casualty of an agile development environment is documentation.   - me No written test cases to speak of Need to deliver features, NOW!!!
The Stage First casualty of an agile development environment is documentation.   - me No written test cases to speak of Need to deliver features, NOW!!! Groupon: Weekly deployments
The Stage First casualty of an agile development environment is documentation.   - me No written test cases to speak of Need to deliver features, NOW!!! Groupon: Weekly deployments IMVU: Up to 50 deploys a day http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/
Why automated tests? Too expensive Too much work to create Not enough staff to maintain Never know the coverage level No one but developers knows what is being tested
Cucumber
Cucumber A BDD framework to help with TDD and other TLAs
Cucumber A BDD framework to help with TDD and other TLAs It’s Agile, Promotes Synergy, Enterprise, will shift Paradigms and completely Web 2.0
Cucumber A BDD framework to help with TDD and other TLAs It’s Agile, Promotes Synergy, Enterprise, will shift Paradigms and completely Web 2.0  You too can be BUZZ WORD compliant!
Img Source: http://www.themoreyouknow.com/
Natural Language @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google Scenario: User Searches for Hello World on Google.com Given  I'm on Google's Home Page And  I search for Hello World Then  I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given  I'm on Bing's Home Page And  I search for Hello World Then  I should see car videos as first result
Step Definitions Given   /^I'm on Google's Home Page$/   do @selenium.open " www.google.com " end Given   /^I'm on Bing's Home Page$/   do @selenium.open " www.bing.com " end When   /^I  search for Hello World$/   do @selenium.type "q", "Hello World" end Then   /^I should see Wikipedia's Hello World article as 1st result$/   do assert_stuff end Then   /^I should see car videos as first result$/   do assert_stuff end
Why automated tests? Too expensive Too much work to create Not enough staff to maintain Never know the coverage level No one but developers knows what is being tested
Who should be writing tests?
Who should be writing tests? Developers Unit, Integration, Functional
Who should be writing tests? Developers Unit, Integration, Functional QAs Functional, End-To-End
Who should be writing tests? Developers Unit, Integration, Functional QAs Functional, End-To-End Everyone else At least the feature definitions
Why automated tests? Too expensive Too much work to create Not enough staff to maintain Never know the coverage level No one but developers knows what is being tested
Mind Map Solution
Why automated tests? Too expensive Too much work to create Not enough staff to maintain Never know the coverage level No one but developers knows what is being tested
Good Features Tags Encourages BDD/TDD Supports multiple test drivers Selenium 1 and Selenium 2 support Multilingual  i18n support Readable test results
Tags @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google @selenium Scenario: User Searches for Hello World on Google.com Given  I'm on Google's Home Page And  I search for Hello World Then  I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given  I'm on Bing's Home Page And  I search for Hello World Then  I should see car videos as first result
Tags @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google @selenium Scenario: User Searches for Hello World on Google.com Given  I'm on Google's Home Page And  I search for Hello World Then  I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given  I'm on Bing's Home Page And  I search for Hello World Then  I should see car videos as first result
Encourages BDD/TDD Write feature description first Run test see it fail Create one step definition at the time Write functionality for the step Run test see it pass
First run
First run
Write Step Definitions
Write More Step Definitions
Even More Step Definitions
Multiple Test Drivers Steam Celerity Culerity FireWatir SafariWatir ChromeWatir Img Source: Wikipedia
Selenium 1 support Before do | scenario | @selenium  =  Selenium::Client::Driver.new ( :host  => "localhost", :port  => 4444, :browser  => “firefox”, :url  => “ www.google.com ”) end
Selenium 1 Tip Use Hpricot Or Nokogiri!!! page =  Hpricot ( @selenium .get_html_source)
 
 
Selenium 2 support
Selenium 2 support Capybara + Selenium = Love
Selenium 2 support Capybara + Selenium = Love Capybara + Selenium + Rails = .......
Capybara Uses Nokogiri Uses XPath outside of browser Works outside of rails
Multilingual JVM: JRuby, Java .NET: IronRuby, IronRuby .NET, Mono Adoby Flex: FunFX, Melomel Python Erlang Groovy Scala Closure Javascript Spring
Java Step Definition package cukes; import cuke4duke.annotation.I18n.EN.Given; import java.util.List; import java.util.ArrayList; public class BellySteps { private List<String> belly = new ArrayList<String>(); @Given(&quot;I have (\\d+) cukes in my belly&quot;) public void bellyCukes(int cukes) { for(int i = 0; i < cukes; i++) { belly.add(&quot;cuke &quot; + i); } } }
i18n
i18n Функционал:  Сложение чисел Чтобы не складывать в уме Все, у кого с этим туго Хотят автоматическое сложение целых чисел Сценарий:  Сложение двух целых чисел Допустим  я ввожу число 50 И  затем ввожу число 70 Если  я нажимаю &quot;+&quot; То  результатом должно быть число 120
i18n Chinese 功能 :  加法 為了避免愚蠢的錯誤 作為一個數學白痴  我希望有人能告訴我兩個數相加的結果 場景大綱 :   將兩個數相加 假 設我已經在計算機上輸入  < 數值 _1> 而 且我已經在計算機上輸入  < 數值 _2> 當 我按下  < 按鈕 > 那 麼螢幕上應該顯示  < 結果 >
i18n LOLz OH HAI:  STUFFING MISHUN:  CUCUMBR I CAN HAZ  IN TEH BEGINNIN 3 CUCUMBRZ WEN  I EAT 2 CUCUMBRZ DEN  I HAS 2 CUCUMBERZ IN MAH BELLY AN  IN TEH END 1 CUCUMBRZ KTHXBAI
Readable Test Results
Bad Features Regex step definitions Hard To find Step Definitions Slower Natural language parser Messy directory structure
Regex Step Definitions Good: Reuse Definitions Bad: Then   /^(?:|I )should see &quot;([^\&quot;]*)&quot;(?: within &quot;([^\&quot;]*)&quot;)?$/   do
Hard to find Step Definitions cucumber-tmbundle Vim Rails
Bad Features Regex step definitions Hard To find Step Definitions Slower Natural language parser Messy directory structure
Conclusion Cucumber is a great tool to Describe Features Document Features Get the whole team involved However, it has downsides also
@dhh RSpec offends me aesthetically with no  discernible benefit for its added complexity over test/unit.
@dhh RSpec offends me aesthetically with no  discernible benefit for its added complexity over test/unit. Cucumber makes no sense to me unless you have clients  reading the tests.  Why would you build a test-specific parser  for English?
@dhh RSpec offends me aesthetically with no  discernible benefit for its added complexity over test/unit. Cucumber makes no sense to me unless you have clients  reading the tests.  Why would you build a test-specific parser  for English? The important thing is of course that we get people testing, so tools shouldn't matter too much....
Work @ Groupon www.groupon.com/techjobs
The End
 

More Related Content

PPTX
BDD testing with cucumber
PPTX
Cucumber
PDF
Behavior Driven Development with Cucumber
PPTX
Bdd with Cucumber and Mocha
PDF
Cucumber ppt
PPTX
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
PPSX
Cucumber & gherkin language
PDF
greach 2014 marco vermeulen bdd using cucumber jvm and groovy
BDD testing with cucumber
Cucumber
Behavior Driven Development with Cucumber
Bdd with Cucumber and Mocha
Cucumber ppt
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
Cucumber & gherkin language
greach 2014 marco vermeulen bdd using cucumber jvm and groovy

What's hot (20)

PDF
The LAZY Developer's Guide to BDD (with Cucumber)
PPTX
Test Automation Framework with BDD and Cucumber
PPTX
Bdd – with cucumber and gherkin
PDF
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
PPTX
Cucumber BDD
PDF
Put an end to regression with codeception testing
PDF
Capybara testing
PDF
Rspec and Capybara Intro Tutorial at RailsConf 2013
PPTX
Writing automation tests with python selenium behave pageobjects
PDF
Front-end Automated Testing
PDF
Composer at Scale, Release and Dependency Management
PDF
Midwest PHP 2017 DevOps For Small team
PDF
QAAgility Presentation - Cucumber with Appium
PPTX
Automated Testing with Cucumber, PhantomJS and Selenium
PPTX
Cypress workshop for JSFoo 2019
PDF
Testing Code.org's Interactive CS Curriculum
PDF
Behavior Driven Development with Cucumber
PDF
Behavior Driven Development - How To Start with Behat
PPT
Testing Any Site With Cucumber and Selenium
PDF
Selenium and Sauce Labs
The LAZY Developer's Guide to BDD (with Cucumber)
Test Automation Framework with BDD and Cucumber
Bdd – with cucumber and gherkin
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Cucumber BDD
Put an end to regression with codeception testing
Capybara testing
Rspec and Capybara Intro Tutorial at RailsConf 2013
Writing automation tests with python selenium behave pageobjects
Front-end Automated Testing
Composer at Scale, Release and Dependency Management
Midwest PHP 2017 DevOps For Small team
QAAgility Presentation - Cucumber with Appium
Automated Testing with Cucumber, PhantomJS and Selenium
Cypress workshop for JSFoo 2019
Testing Code.org's Interactive CS Curriculum
Behavior Driven Development with Cucumber
Behavior Driven Development - How To Start with Behat
Testing Any Site With Cucumber and Selenium
Selenium and Sauce Labs
Ad

Viewers also liked (8)

PPTX
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
PDF
Continuous Security Testing
PDF
QA Fest 2015. Игорь Хрол. Тестировщик в Agile - кто это?
PPTX
Robot Framework (のSelenium2Libraryのお話)
PDF
TDC2016SP - Trilha Embarcados
PDF
Robot Framework Dos And Don'ts
PDF
Robot Framework Introduction
PDF
Mobile automation using selenium cucumber & appium
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
Continuous Security Testing
QA Fest 2015. Игорь Хрол. Тестировщик в Agile - кто это?
Robot Framework (のSelenium2Libraryのお話)
TDC2016SP - Trilha Embarcados
Robot Framework Dos And Don'ts
Robot Framework Introduction
Mobile automation using selenium cucumber & appium
Ad

Similar to Selenium and Cucumber Selenium Conf 2011 (20)

PDF
Behaviour driven infrastructure
KEY
Graceful Failure with Selenium and Continuous Integration
PPTX
Browser Automated Testing Frameworks - Nightwatch.js
PPT
Selenium
PDF
Mastering Test Automation: How to Use Selenium Successfully
PDF
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
PPT
jQuery For Developers Stack Overflow Dev Days Toronto
PDF
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
KEY
Enterprise Build And Test In The Cloud
PDF
Cucumber tutorial
ODP
Integration Testing in Python
PDF
Introduction to Selenium and Test Automation
PPTX
Getting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
PDF
Free The Enterprise With Ruby & Master Your Own Domain
ODP
Continuous integration with Git & CI Joe
PPT
Встреча "QA: в каких направлениях может найти себя тестировщик?"
PPT
Introduction to Selenium
PPTX
Creating testing tools to support development
PDF
Developing an Ember Test Strategy - EmberConf 2019
PPT
BCS Selenium Workshop
Behaviour driven infrastructure
Graceful Failure with Selenium and Continuous Integration
Browser Automated Testing Frameworks - Nightwatch.js
Selenium
Mastering Test Automation: How to Use Selenium Successfully
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
jQuery For Developers Stack Overflow Dev Days Toronto
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Enterprise Build And Test In The Cloud
Cucumber tutorial
Integration Testing in Python
Introduction to Selenium and Test Automation
Getting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
Free The Enterprise With Ruby & Master Your Own Domain
Continuous integration with Git & CI Joe
Встреча "QA: в каких направлениях может найти себя тестировщик?"
Introduction to Selenium
Creating testing tools to support development
Developing an Ember Test Strategy - EmberConf 2019
BCS Selenium Workshop

More from dimakovalenko (8)

PPTX
Scaling and Managing Selenium Grid
PPTX
Managing Large Selenium Grid
PPTX
Selenium Conf 2013 Lightning Talk - Any-Branch
PPTX
Stabilizing SE Build - Selenium conf 2013
PPT
Jasmine presentation Selenium Camp 2013
PDF
Selenium camp v1
PPT
Cucumber Presentation Kiev Meet Up
PPT
Evergreen build
Scaling and Managing Selenium Grid
Managing Large Selenium Grid
Selenium Conf 2013 Lightning Talk - Any-Branch
Stabilizing SE Build - Selenium conf 2013
Jasmine presentation Selenium Camp 2013
Selenium camp v1
Cucumber Presentation Kiev Meet Up
Evergreen build

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Machine Learning_overview_presentation.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPT
Teaching material agriculture food technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
A Presentation on Artificial Intelligence
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
MYSQL Presentation for SQL database connectivity
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Empathic Computing: Creating Shared Understanding
Assigned Numbers - 2025 - Bluetooth® Document
Spectral efficient network and resource selection model in 5G networks
Machine Learning_overview_presentation.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
NewMind AI Weekly Chronicles - August'25-Week II
Teaching material agriculture food technology
Review of recent advances in non-invasive hemoglobin estimation
sap open course for s4hana steps from ECC to s4
Per capita expenditure prediction using model stacking based on satellite ima...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation theory and applications.pdf
Unlocking AI with Model Context Protocol (MCP)
A Presentation on Artificial Intelligence
20250228 LYD VKU AI Blended-Learning.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation_ Review paper, used for researhc scholars
Dropbox Q2 2025 Financial Results & Investor Presentation

Selenium and Cucumber Selenium Conf 2011

  • 1.  
  • 2. Dima Kovalenko @dimacus www.agilesoftwaretesting.com www.dimakovalenko.com linked in.com/in/dimakovalen ko
  • 6. Why automated tests? Too expensive Too much work to create Not enough staff to maintain Never know the coverage level No one but developers knows what is being tested
  • 7. We don’t need Automated Tests!
  • 8. We don’t need Automated Tests! The End See You all at Selenium 2012!
  • 9.  
  • 10. Selenium and Cucumber Img Source: http://pickledillies.homestead.com/
  • 11. Overview Set the stage Introduce Cucumber Good features Bad features ??? Profit!
  • 12. Assumptions Startup or small business Understaffed Inadequate test coverage Need to defend existence of having automated tests to business.
  • 14. The Stage First casualty of an agile development environment is documentation. - me
  • 15. The Stage First casualty of an agile development environment is documentation. - me No written test cases to speak of
  • 16. The Stage First casualty of an agile development environment is documentation. - me No written test cases to speak of Need to deliver features, NOW!!!
  • 17. The Stage First casualty of an agile development environment is documentation. - me No written test cases to speak of Need to deliver features, NOW!!! Groupon: Weekly deployments
  • 18. The Stage First casualty of an agile development environment is documentation. - me No written test cases to speak of Need to deliver features, NOW!!! Groupon: Weekly deployments IMVU: Up to 50 deploys a day http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/
  • 19. Why automated tests? Too expensive Too much work to create Not enough staff to maintain Never know the coverage level No one but developers knows what is being tested
  • 21. Cucumber A BDD framework to help with TDD and other TLAs
  • 22. Cucumber A BDD framework to help with TDD and other TLAs It’s Agile, Promotes Synergy, Enterprise, will shift Paradigms and completely Web 2.0
  • 23. Cucumber A BDD framework to help with TDD and other TLAs It’s Agile, Promotes Synergy, Enterprise, will shift Paradigms and completely Web 2.0 You too can be BUZZ WORD compliant!
  • 25. Natural Language @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google Scenario: User Searches for Hello World on Google.com Given I'm on Google's Home Page And I search for Hello World Then I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given I'm on Bing's Home Page And I search for Hello World Then I should see car videos as first result
  • 26. Step Definitions Given /^I'm on Google's Home Page$/ do @selenium.open &quot; www.google.com &quot; end Given /^I'm on Bing's Home Page$/ do @selenium.open &quot; www.bing.com &quot; end When /^I search for Hello World$/ do @selenium.type &quot;q&quot;, &quot;Hello World&quot; end Then /^I should see Wikipedia's Hello World article as 1st result$/ do assert_stuff end Then /^I should see car videos as first result$/ do assert_stuff end
  • 27. Why automated tests? Too expensive Too much work to create Not enough staff to maintain Never know the coverage level No one but developers knows what is being tested
  • 28. Who should be writing tests?
  • 29. Who should be writing tests? Developers Unit, Integration, Functional
  • 30. Who should be writing tests? Developers Unit, Integration, Functional QAs Functional, End-To-End
  • 31. Who should be writing tests? Developers Unit, Integration, Functional QAs Functional, End-To-End Everyone else At least the feature definitions
  • 32. Why automated tests? Too expensive Too much work to create Not enough staff to maintain Never know the coverage level No one but developers knows what is being tested
  • 34. Why automated tests? Too expensive Too much work to create Not enough staff to maintain Never know the coverage level No one but developers knows what is being tested
  • 35. Good Features Tags Encourages BDD/TDD Supports multiple test drivers Selenium 1 and Selenium 2 support Multilingual i18n support Readable test results
  • 36. Tags @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google @selenium Scenario: User Searches for Hello World on Google.com Given I'm on Google's Home Page And I search for Hello World Then I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given I'm on Bing's Home Page And I search for Hello World Then I should see car videos as first result
  • 37. Tags @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google @selenium Scenario: User Searches for Hello World on Google.com Given I'm on Google's Home Page And I search for Hello World Then I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given I'm on Bing's Home Page And I search for Hello World Then I should see car videos as first result
  • 38. Encourages BDD/TDD Write feature description first Run test see it fail Create one step definition at the time Write functionality for the step Run test see it pass
  • 42. Write More Step Definitions
  • 43. Even More Step Definitions
  • 44. Multiple Test Drivers Steam Celerity Culerity FireWatir SafariWatir ChromeWatir Img Source: Wikipedia
  • 45. Selenium 1 support Before do | scenario | @selenium = Selenium::Client::Driver.new ( :host => &quot;localhost&quot;, :port => 4444, :browser => “firefox”, :url => “ www.google.com ”) end
  • 46. Selenium 1 Tip Use Hpricot Or Nokogiri!!! page = Hpricot ( @selenium .get_html_source)
  • 47.  
  • 48.  
  • 50. Selenium 2 support Capybara + Selenium = Love
  • 51. Selenium 2 support Capybara + Selenium = Love Capybara + Selenium + Rails = .......
  • 52. Capybara Uses Nokogiri Uses XPath outside of browser Works outside of rails
  • 53. Multilingual JVM: JRuby, Java .NET: IronRuby, IronRuby .NET, Mono Adoby Flex: FunFX, Melomel Python Erlang Groovy Scala Closure Javascript Spring
  • 54. Java Step Definition package cukes; import cuke4duke.annotation.I18n.EN.Given; import java.util.List; import java.util.ArrayList; public class BellySteps { private List<String> belly = new ArrayList<String>(); @Given(&quot;I have (\\d+) cukes in my belly&quot;) public void bellyCukes(int cukes) { for(int i = 0; i < cukes; i++) { belly.add(&quot;cuke &quot; + i); } } }
  • 55. i18n
  • 56. i18n Функционал: Сложение чисел Чтобы не складывать в уме Все, у кого с этим туго Хотят автоматическое сложение целых чисел Сценарий: Сложение двух целых чисел Допустим я ввожу число 50 И затем ввожу число 70 Если я нажимаю &quot;+&quot; То результатом должно быть число 120
  • 57. i18n Chinese 功能 : 加法 為了避免愚蠢的錯誤 作為一個數學白痴 我希望有人能告訴我兩個數相加的結果 場景大綱 : 將兩個數相加 假 設我已經在計算機上輸入 < 數值 _1> 而 且我已經在計算機上輸入 < 數值 _2> 當 我按下 < 按鈕 > 那 麼螢幕上應該顯示 < 結果 >
  • 58. i18n LOLz OH HAI: STUFFING MISHUN: CUCUMBR I CAN HAZ IN TEH BEGINNIN 3 CUCUMBRZ WEN I EAT 2 CUCUMBRZ DEN I HAS 2 CUCUMBERZ IN MAH BELLY AN IN TEH END 1 CUCUMBRZ KTHXBAI
  • 60. Bad Features Regex step definitions Hard To find Step Definitions Slower Natural language parser Messy directory structure
  • 61. Regex Step Definitions Good: Reuse Definitions Bad: Then /^(?:|I )should see &quot;([^\&quot;]*)&quot;(?: within &quot;([^\&quot;]*)&quot;)?$/ do
  • 62. Hard to find Step Definitions cucumber-tmbundle Vim Rails
  • 63. Bad Features Regex step definitions Hard To find Step Definitions Slower Natural language parser Messy directory structure
  • 64. Conclusion Cucumber is a great tool to Describe Features Document Features Get the whole team involved However, it has downsides also
  • 65. @dhh RSpec offends me aesthetically with no discernible benefit for its added complexity over test/unit.
  • 66. @dhh RSpec offends me aesthetically with no discernible benefit for its added complexity over test/unit. Cucumber makes no sense to me unless you have clients reading the tests. Why would you build a test-specific parser for English?
  • 67. @dhh RSpec offends me aesthetically with no discernible benefit for its added complexity over test/unit. Cucumber makes no sense to me unless you have clients reading the tests. Why would you build a test-specific parser for English? The important thing is of course that we get people testing, so tools shouldn't matter too much....
  • 68. Work @ Groupon www.groupon.com/techjobs
  • 70.