/
BEHAVIOR DRIVEN  DEVELOPMENT / TESTING BEHAVIOR DRIVEN  DEVELOPMENT / TESTING

BEHAVIOR DRIVEN DEVELOPMENT / TESTING - PowerPoint Presentation

ellena-manuel
ellena-manuel . @ellena-manuel
Follow
402 views
Uploaded On 2018-03-07

BEHAVIOR DRIVEN DEVELOPMENT / TESTING - PPT Presentation

BDD Overview of Cucumber Capybara What is BDD The main focus is on the expected behavior of the application and its components User stories created and maintained collaboratively by all stakeholders ID: 642163

click capybara div cucumber capybara click cucumber div button feature link user search google gem http files features fill

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "BEHAVIOR DRIVEN DEVELOPMENT / TESTING" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

BEHAVIOR DRIVEN DEVELOPMENT / TESTING (BDD)

Overview of Cucumber / Capybara Slide2

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

Behavior Driven Development/TestingSlide3

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 loginScenario: Successful loginGiven I am on the Myish home page

When I fill in email and password

And I click login buttonThen I should be able to click on the profile

Cucumber BasicsSlide4

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 driverOffers user-friendly DSL ( Domain Specific Language )

Supported driver

Rack::testDefault driver. No JavaScript support Selenium-WebdriverMostly used in web-based automation FWCapybara-WebkitFor true headless testing with JavaScript support

CAPYBARASlide5

Basic DSL :Visit('page_url

') # navigate to page

Click_link('id_of_link') # click link by idClick_link('link_text') # click link by link textClick_button('button_name') # fill text fieldFill_in('First Name', :with => 'John') # choose radio buttonChoose('

radio_button

') # choose radio buttonCheck('checkbox') # check in checkboxUncheck('checkbox') # uncheck in checkbox

Select

('option', :from=>'

select_box

') # select from dropdownAttach_file('image', 'path_to_image') # upload file

CAPYBARA: Slide6

Pre-requisites

Java

- JRERubyRubyGems installation – use “gem install <name of gem>” command. CucumberCapybaraRspecSlide7

DEMO

Project Structure

: Slide8

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.

Slide9

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 searchWhen 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."

Slide10

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

Then /^I click "([^"]*)" button$/ do |button| click_button(button)

end

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

end

Then /^I should see "([^"]*)"$/ do |text|

page.should

have_content

(text)

end

Slide11

Sample: env.rb

– hosts all configuration files

Project structure : require 'capybara' require 'capybara/cucumber' Capybara.default_driver = :seleniumCapybara.app_host = "

http://

www.google.com" Capybara.default_wait_time = 20

World(Capybara

)

Slide12

Sample: Gemfile– a format for describing gem dependencies required to execute Ruby codes

source "

http://rubygems.org" group(:test) dogem 'cucumber'gem 'capybara'gem 'rspec'endSlide13

Main cucumber commands:

command to run the script :

cucumber features/<name of the feature file>.featurecommand to generate the report:run this command by going to your project directorycucumber features --format html --out reportsSlide14

RESOURCES:

https://

github.com/jnicklas/capybarahttps://shvets.github.io/blog/2013/10/12/acceptance_tricks.htmlhttps://github.com/cucumber/cucumber/wikihttp://

www.ibm.com

/developerworks/library/a-automating-ria/Useful resources (and lots of examples):

http://

books.openlibra.com

/pdf/

cuke4ninja-2011-03-16.pdf < awesome free eBook – fun to read, too.http://www.slideshare.net/

lunivore

/behavior-driven-development-11754474 < Liz really knows her stuff!

http://

dannorth.net

/2011/01/31/whose-domain-is-it-anyway/

https://

www.google.co.uk

/

search?q

=

declarative+vs+imperative+BDD

< go Team Declarative!