Presentation is loading. Please wait.

Presentation is loading. Please wait.

Aruna Banavar Shankar & Miti Bhat

Similar presentations


Presentation on theme: "Aruna Banavar Shankar & Miti Bhat"— Presentation transcript:

1 Aruna Banavar Shankar & Miti Bhat
Agile BDD using RSpec and Cucumber Aruna Banavar Shankar & Miti Bhat © Infosys Limited. Strictly private and confidential. No part of this document should be reproduced or distributed without the prior permission of Infosys Technologies Limited.

2 Contents BDD Installation Demo for Rspec Demo for Cucumber
The Basic Features Cucumber vs. Rspec

3 An elephant as seen by 6 blind people!
A story An elephant as seen by 6 blind people! The elephant was assumed to be what was “felt” by these blind people One question! – Can everyone see one entity as it is???

4 Introduction to BDD “Getting the Words Right” is the focus of BDD, leading to building one language that is understood the same way by the project stakeholders Vision is to bring in consistency, accuracy and meaning Behavior Driven Development (BDD) claims “the words you use about something influence the way you think about that”.

5 How it works? As <a ROLE> I need a <FEATURE> towards <BENEFIT> Examples As an <ADMIN> I need <ACCESS TO FUNCTIONAL ADMIN PORTAL> to <MANAGE USERS> As the <IT MANAGER> I need <DETAILED REPORT> to <VALIDATE IT SPEND>

6 Key stakeholders in a project
Developer – Interested in coding than testing If tester finds a defect or if time permits …… focus on defects Let me code first is the general tendency Tester – Primary responsibility is to test and find defects Customer – Clarifications, approvals, sign off Different stakeholders, unlike mindset, varied mission come together in the project. Building an application by understanding its behavior from all stakeholder point of view. This builds a collaboration between developer, Tester, business and other teams.

7 Then……what is BDD In the "Agile specifications, BDD and Testing eXchange" in November 2009 in London, Dan North[3] gave the following description of BDD: BDD is a second-generation, outside–in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.

8 About them… RSpec created by Steven Baker in 2005.
To explore new TDD frameworks Encourage focus on behavior…. Rspec 2008, Aslak Hellesøy To explore new BDD frameworks Rewrites RSpec’s Story Runner with a real grammar… Cucumber

9 Installation Installed as gems: rspec cucumber

10 Folder Structure

11 Cucumber & RSpec Ref: The Rspec Book by David Chelimsky and others published by The Pragmatic Bookshelf

12 Demo Hello Rspec

13 Demo: Hello Cucumber

14 Step Definitions Creates a step. Methods: Given( ) When( ) Then( )
Each must have Regexp A block.

15 Step definitions Sample
Given /^a greeter$/ do @greeter = CucumberGreeter.new end When /^I send it the greet message$/ do @message Then /^I should see "([^"]*)"$/ do |greeting| @message.should == greeting

16 Demo: step Definitions
website2

17 User stories Consider: User navigates to home page User enters details
User successfully logs in User unsuccessful in logging in

18 DEMO: Multiple scenarios
Website: adding more scenarios without tables

19 Scenario outlines Let us define a single scenario outline
Tables of input data Expected output.

20 Sample: Scenario outlines
Scenario Outline: submit guess Given the secret code is "<code>" When I guess "<guess>" Then the symbol should be "<symbol>"

21 Sample: scenario Outlines
Scenario Outline: submit details Given the user name is "<uname>" When I guess "<pwd>" Then the message should be "<mesg>" Scenarios: no matches | uname | pwd | symbol| | ^^^^ | a1a1 | failed | Scenarios: 1 uname incorrect | uname | pwd | mesg | | abcd | | passed | | ba-mn| | failed |

22 Test doubles An object that behaves as though it is the original object Eg: output

23 Demo: Test Double Uses test double but shows logical error

24 “It” method The it( ) method: creates an example
ExampleGroup returns an instance of it using describe( ) Demo: website5 Note: Rspec double(out) – a mock for STDOUT

25 A small change def start @output.puts 'Welcome to website!' end
The test passes!!! Once the passing code is ready… See it in action!!! Demo: website6 using .bat file

26 When Cucumber & WHEN Rspec
Cucumber - integration/acceptance testing rspec/test unit - Model unit tests. Define feature scenario in cucumber Start by implementing every step of feature scenario For each functionality required BDD that with rspec Repeat until functionality is complete

27 Hooks Hooks: • Before - every scenario • After - every scenario
• AfterStep - after every step

28 Backgrounds Steps that are invoked Before and After every scenario
Feature: browse books Background: Logged in Given I have logged in as “Aruna" And the following models exist: | manufacturer | carmodel? | | Ford | yes | | Honda| no | Scenario: Display a car that already exists Scenario: Display a car that is not yet in market

29 Configuration Command Line configuration for: Switches Options Eg:
mycmd: features Usage: cucumber –p mycmd

30 References / Bibliography
The Rspec Book by David Chelimsky and others published by The Pragmatic Bookshelf Wikipedia

31 To reproduce this slide simply create a new slide, right click and select layout and apply the Notes&Disclaimer layout.


Download ppt "Aruna Banavar Shankar & Miti Bhat"

Similar presentations


Ads by Google