Presentation is loading. Please wait.

Presentation is loading. Please wait.

BEHAVIOR DRIVEN DEVELOPMENT / TESTING (BDD)

Similar presentations


Presentation on theme: "BEHAVIOR DRIVEN DEVELOPMENT / TESTING (BDD)"— Presentation transcript:

1 BEHAVIOR DRIVEN DEVELOPMENT / TESTING (BDD)
Overview of Cucumber / Capybara

2 Behavior Driven Development/Testing
What is BDD? The main focus is on the expected behavior of the application and it’s components. User stories created and maintained collaboratively by all stakeholders What are the benefits? Define verifiable, executable and unambiguous requirements Developing features that truly add business value Preventing defects rather than finding defects Bring QA involvement to the forefront, great for team dynamics

3 Cucumber Basics Testing tool based on BDD written in Ruby.
Tests are written in plain language called Gherkin based BDD style of Given, When, Then, which any layperson can understand. Tests are grouped into feature files with .feature extension. E.g. Feature: As a Myish user I should be able to login Scenario: Successful login Given I am on the Myish home page When I fill in and password And I click login button Then I should be able to click on the profile

4 CAPYBARA Capybara is a web-based automation framework used for creating functional tests that simulate how users would interact with the application Capybara is library/gem built to be used on top of underlying web-based driver Offers user-friendly DSL ( Domain Specific Language ) Supported driver Rack::test Default driver. No JavaScript support Selenium-Webdriver Mostly used in web-based automation FW Capybara-Webkit For true headless testing with JavaScript support

5 CAPYBARA: Basic DSL : Visit('page_url') # navigate to page
Click_link('id_of_link') # click link by id Click_link('link_text') # click link by link text Click_button('button_name') # fill text field Fill_in('First Name', :with => 'John') # choose radio button Choose('radio_button') # choose radio button Check('checkbox') # check in checkbox Uncheck('checkbox') # uncheck in checkbox Select('option', :from=>'select_box') # select from dropdown Attach_file('image', 'path_to_image') # upload file

6 Pre-requisites Java - JRE Ruby
RubyGems installation – use “gem install <name of gem>” command. Cucumber Capybara Rspec

7 DEMO Project Structure :

8 DEMO Project Structure :
Features – folder to host all your feature files. Step_Definitions – folder to host all your step definition Ruby files. Support – folder to host your configuration files (env.rb). Gemfile – defines the top-level gems to be used in your project.

9 DEMO Sample: simple_search.feature: – Describes the features that a user will be able to use in the program. Feature: As a user I should be able to perform simple google search. Scenario: A simple google search scenario Given I am on the main google search When I fill in "q" with "Cucumber test" And I click "gbqfb" button And I click on the first result Then I should see "Cucumber lets software development teams describe how software should behave in plain text."

10 Sample: search_step.rb – describes the actions that user will do for each step.
Given /^I am on the main google search$/ do visit ('/') end When /^(?:|I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value| fill_in(field, :with => value) Then /^I click "([^"]*)" button$/ do |button| click_button(button) Then /^I click on the first result$/ do find(:xpath, "//html/body/div[3]/div[2]/div/div[5]/div[2]/div[2]/div/div[2]/div/ol/li/div/h3/a").click Then /^I should see "([^"]*)"$/ do |text| page.should have_content(text)

11 Sample: env.rb – hosts all configuration files
Project structure : require 'capybara' require 'capybara/cucumber' Capybara.default_driver = :selenium Capybara.app_host = " Capybara.default_wait_time = 20 World(Capybara)

12 Sample: Gemfile – a format for describing gem dependencies required to execute Ruby codes
source " group(:test) do gem 'cucumber' gem 'capybara' gem 'rspec' end

13 Main cucumber commands:
command to run the script : cucumber features/<name of the feature file>.feature command to generate the report: run this command by going to your project directory cucumber features --format html --out reports

14 RESOURCES: https://github.com/jnicklas/capybara
Useful resources (and lots of examples): < awesome free eBook – fun to read, too. < Liz really knows her stuff! < go Team Declarative!


Download ppt "BEHAVIOR DRIVEN DEVELOPMENT / TESTING (BDD)"

Similar presentations


Ads by Google