17
Cucumber Recipes Sonik Chopra PMI ACP, PMP Agile Coach, Manager Pitney Bowes Software

Sgin2013 scrum startrek-cucumber recipes-sonikchopra

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

Cucumber Recipes

Sonik Chopra PMI ACP, PMP Agile Coach, Manager Pitney Bowes Software

Page 2: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

Agenda

• Introduction to BDD

• BDD Vs TDD

• Cucumber Features

• Demo: The real power of Cucumber

• Integration with different languages and platforms

Page 3: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

Behaviour Driven Development

Implementing an application by describing its behaviour by the perspective of its stakeholders..

Dan North

Page 4: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

But don’t we already do this??

Page 5: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

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()

Page 6: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

Restricted view on Behaviour

Page 7: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

Difference in thinking

CLIENT CUSTOMER

BUYER

SHOPPER

PUNTER

DEV QA BA CLIENT PO

Page 8: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

Increased Ambiguity LOST

Page 9: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

BDD – Outside In

VISION

GOAL

FEATURE

STORY

SCENARIO

CODE

Page 10: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

Scenarios and Examples in Ubiquitous Language

HAVING CONVERSATION IS MORE IMPORTANT

TALKING THROUGH EXAMPLES HELP DISCOVER

CONSIDERS MULTIPLE STAKEHOLDERS

Page 11: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

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

Page 12: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

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.

Page 13: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

Cucumber at a glance…

Written in plain English Language using Gherkin

Source Code in Ruby Or Java Or Dot Net etc

Page 14: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

DEMO of Cucumber Capabilities

Page 15: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

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

Page 16: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

• 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

Page 17: Sgin2013 scrum startrek-cucumber recipes-sonikchopra

Thank You

Sonik Chopra PMI ACP, PMP Agile Coach, Manager Pitney Bowes Software [email protected] http://in.linkedin.com/in/sonikchopra Twitter: @sonikchopra