View
604
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
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_lessthan_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 [email protected] http://in.linkedin.com/in/sonikchopra Twitter: @sonikchopra