hands on bdd with cucumber - agile goa sept 2013

Post on 14-May-2015

587 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

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

sonikchopra@gmail.comhttp://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/

top related