Cucumber Recipes
Sonik Chopra
PMI ACP, PMP
Agile Coach, Manager
Pitney Bowes Software
Agenda
• Introduction to BDD
• BDD Vs TDD
• Cucumber Features
• Demo: The real power of Cucumber
• Integration with different languages and
platforms
Behaviour Driven Development
Implementing an application by describing its
behaviour by the perspective of its
stakeholders..
Dan North
But don’t we already do this??
What we really do….
As a Retail Customer, I want to withdraw money
from my Account so that I can get Money.
Unit Tests
Should_Not_Dispense_When_the_ClientAccount_has_money_le
ssthan_minimum_amount()
Should_withdraw_Money_When_appropriate_Sum_Found()
Should_Not_Withdaw_Post_Expiry_Date()
Should_Withdraw_Post_Expiry_Date()
Should_Be_A_Valid_User()
Should_Not_Withdraw_When_Negative_Balance()
Should_Be_A_Valid_Account_Type()
Should_Return_Error_When_ATM_Is_Without_Cash()
Restricted view on Behaviour
Difference in thinking
CLIENT
CUSTOMER
BUYER
SHOPPER
PUNTER
DEV QA BA CLIENT PO
Increased Ambiguity  LOST
BDD – Outside In
VISION
GOAL
FEATURE
STORY
SCENARIO
CODE
Scenarios and Examples in Ubiquitous Language
HAVING CONVERSATION IS
MORE IMPORTANT
TALKING THROUGH
EXAMPLES HELP DISCOVER
CONSIDERS MULTIPLE
STAKEHOLDERS
BDD Vs TDD
• Development Methodology Vs Development
Technique
• Business Driven Vs Design Approach
• Customer Writing Tests Vs Developers writing
Tests
• Focus on Behavioural Aspect Vs
Implementation Aspect
Cucumber Example…
Story:
As a user
I want to login with my details
So that I can get access to the site
Scenario: User uses wrong password
Given a username 'jdoe'
And a password 'letmein'
When the user logs in with username and password
Then the login form should be shown again
GHERKIN
LANGUAGE
Gherkin Supports
40+ Languages.
Cucumber at a glance…
Written in plain
English Language using
Gherkin
Source Code in Ruby
Or Java Or Dot Net etc
DEMO of Cucumber Capabilities
Cucumber
for Dot Net
SpecFlow
Iron Ruby
Cuke4Nuke
Cucumber
for Java
Cuke4Duke
Webdriver
tools
Watir
Selenium
Competitive
products
FIT/FITNESS
Robot
Framework
Concordian
EasyB
JBehave
Integration with other platforms
• TestBot Or Hydra : Tools used to run
Cucumber tests in parallel. You can also use
Jenkins and create slave machines.
• Relish: A service to publish cucumber features
as documentation
• FactoryGirl GEM: Test Data Builder
• Easy to Integrate with CI environment.
Cucumber Add Ons
Thank You
Sonik Chopra
PMI ACP, PMP
Agile Coach, Manager
Pitney Bowes Software
sonikchopra@gmail.com
http://in.linkedin.com/in/sonikchopra
Twitter: @sonikchopra

Sgin2013 scrum startrek-cucumber recipes-sonikchopra

  • 1.
    Cucumber Recipes Sonik Chopra PMIACP, PMP Agile Coach, Manager Pitney Bowes Software
  • 2.
    Agenda • Introduction toBDD • BDD Vs TDD • Cucumber Features • Demo: The real power of Cucumber • Integration with different languages and platforms
  • 3.
    Behaviour Driven Development Implementingan application by describing its behaviour by the perspective of its stakeholders.. Dan North
  • 4.
    But don’t wealready do this??
  • 5.
    What we reallydo…. As a Retail Customer, I want to withdraw money from my Account so that I can get Money. Unit Tests Should_Not_Dispense_When_the_ClientAccount_has_money_le ssthan_minimum_amount() Should_withdraw_Money_When_appropriate_Sum_Found() Should_Not_Withdaw_Post_Expiry_Date() Should_Withdraw_Post_Expiry_Date() Should_Be_A_Valid_User() Should_Not_Withdraw_When_Negative_Balance() Should_Be_A_Valid_Account_Type() Should_Return_Error_When_ATM_Is_Without_Cash()
  • 6.
  • 7.
  • 8.
  • 9.
    BDD – OutsideIn VISION GOAL FEATURE STORY SCENARIO CODE
  • 10.
    Scenarios and Examplesin Ubiquitous Language HAVING CONVERSATION IS MORE IMPORTANT TALKING THROUGH EXAMPLES HELP DISCOVER CONSIDERS MULTIPLE STAKEHOLDERS
  • 11.
    BDD Vs TDD •Development Methodology Vs Development Technique • Business Driven Vs Design Approach • Customer Writing Tests Vs Developers writing Tests • Focus on Behavioural Aspect Vs Implementation Aspect
  • 12.
    Cucumber Example… Story: As auser I want to login with my details So that I can get access to the site Scenario: User uses wrong password Given a username 'jdoe' And a password 'letmein' When the user logs in with username and password Then the login form should be shown again GHERKIN LANGUAGE Gherkin Supports 40+ Languages.
  • 13.
    Cucumber at aglance… Written in plain English Language using Gherkin Source Code in Ruby Or Java Or Dot Net etc
  • 14.
    DEMO of CucumberCapabilities
  • 15.
    Cucumber for Dot Net SpecFlow IronRuby Cuke4Nuke Cucumber for Java Cuke4Duke Webdriver tools Watir Selenium Competitive products FIT/FITNESS Robot Framework Concordian EasyB JBehave Integration with other platforms
  • 16.
    • TestBot OrHydra : Tools used to run Cucumber tests in parallel. You can also use Jenkins and create slave machines. • Relish: A service to publish cucumber features as documentation • FactoryGirl GEM: Test Data Builder • Easy to Integrate with CI environment. Cucumber Add Ons
  • 17.
    Thank You Sonik Chopra PMIACP, PMP Agile Coach, Manager Pitney Bowes Software sonikchopra@gmail.com http://in.linkedin.com/in/sonikchopra Twitter: @sonikchopra