hands on bdd with cucumber - agile goa sept 2013
TRANSCRIPT
Sonik ChopraPMI ACP, PMPAgile Coach, ManagerPitney Bowes Software
Hands on BDD with Cucumber
Software Development:- Relay Race
Customer Business Analyst Developer
Tester
Team working in SILOS
TOO MANY HANDOVERSDISCONNECTED SYSTEMS FOR REQMTS, TESTS AND DEVELOPMENT
Wrong Perception
Difference in thinking
SITELOCATION
PLACE
AREA
LOCALITY
DEV QA BA CLIENT PO
Documents cannot ensure that software works.
What is Cucumber?
• Serves as documentation, automated tests and development-aid - all rolled into one format.
• Written by the team, in a language understood by all.
• Cucumber is a Behaviour Driven Development tool.
Agenda
• Introduction to BDD• 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
BDD – Outside In Pull Based
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
Cucumber at a glance…
Written in plain English Language using Gherkin
Source Code in Ruby Or Java Or Dot Net etc
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 passwordThen the login form should be shown again
GHERKIN LANGUAGE
Gherkin Supports 40+ Languages.
DEMO of Cucumber Capabilities
Cucumber for Dot Net
SpecFlow
Iron Ruby
Cuke4Nuke
Cucumber for Java
Cuke4Duke
Webdriver tools
Watir
Selenium
Mobile
Android – Calabash
IOS – Frank
Win Phone
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
Summary• Cucumber is a BDD tool.• One stop shop for Requirements,
Development, Scenarios and Acceptance test.• Written by the team, in a language understood
by all.• Easy to integrate with different environments.• Supported in multiple languages and
platforms.
Thank You
Sonik ChopraPMI ACP, PMPAgile Coach, ManagerPitney Bowes Software
[email protected]://in.linkedin.com/in/sonikchopraTwitter: @sonikchopra
Photo Credits• http://www.drinkingo.com/wp-content/uploads/2011/12/
cucumber.jpg• http://t0.gstatic.com/images?
q=tbn:ANd9GcT1FW_GP53v1b38wzbmZ569jzA1aooBpxG-vGl6fkB0YLRBMRbp
• http://t1.gstatic.com/images?q=tbn:ANd9GcQAesiC-VaTAnisaVnVkF2xjEIC-ONQhX6adAWOWcTAZQFuDVVSjg
• http://t2.gstatic.com/images?q=tbn:ANd9GcQrrJsV3DnQ-mLK6_uW_jWtU0tAitACM-GOPPxSoyDronBoQgIvKg
• http://www.flickr.com/photos/heimatiater/3256903620/• http://t2.gstatic.com/images?q=tbn:ANd9GcQrrJsV3DnQ-
mLK6_uW_jWtU0tAitACM-GOPPxSoyDronBoQgIvKg• http://www.clker.com/clipart-software-box-4.html• http://soundbible.com/1203-Time-Bomb.html• http://www.confio.com/database-performance-for-devops/