+ All Categories
Home > Technology > Quality web-acceptance

Quality web-acceptance

Date post: 01-Nov-2014
Category:
Upload: amir-barylko
View: 749 times
Download: 0 times
Share this document with a friend
Description:
 
Popular Tags:
24
Amir Barylko - MvcConf MavenThought Inc. AMIR BARYLKO QUALITY DRIVEN WEB ACCEPTANCE TESTING MVC CONFERENCE FEB 2011 Tuesday, February 8, 2011
Transcript
Page 1: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

AMIR BARYLKO

QUALITY DRIVENWEB ACCEPTANCE

TESTING

MVC CONFERENCEFEB 2011

Tuesday, February 8, 2011

Page 2: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

WHO AM I?

• Architect

• Developer

• Mentor

• Great cook

• The one who’s entertaining you for the next hour!

Tuesday, February 8, 2011

Page 3: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

BDD

Tuesday, February 8, 2011

Page 4: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

WHY TRADITIONALPROJECTS FAIL?

• Delivering late or over budget

• Delivering the wrong thing

• Unstable in production

• Costly to maintain

Tuesday, February 8, 2011

Page 5: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

BDD PRINCIPLES

• Behaviour Driven development is about implementing an application by describing its behaviour from the perspective of the stakeholder

• Enough is Enough

• Deliver stakeholder value

• It’s all behaviour

Tuesday, February 8, 2011

Page 6: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

OUTSIDE IN APPROACH

Tuesday, February 8, 2011

Page 7: Quality web-acceptance

Amir Barylko - BDD MavenThought Inc.

GHERKIN DSL

• Business readable DSL

• Flush out requirements

• Documentation

• Automated testing

• Used by Cucumber, SpecFlow, jBehave

Tuesday, February 8, 2011

Page 8: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

CUCUMBER

Tuesday, February 8, 2011

Page 9: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

• The following folder structure

features: Folder for all the .feature files

step_definitions: all your step implementations (.rb)

support: setup environment, capybara, etc (.rb)

WHAT DO I NEED?

Tuesday, February 8, 2011

Page 10: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

SETUPfeatures/support/paths.rb

module NavigationHelpers # Maps a name to a path. Used by the # # When /^I go to (.+)$/ do |page_name| # # step definition in web_steps.rb # def path_to(page_name) case page_name

when /home/ '/' when /Movies/ '/Movies' ...

Tuesday, February 8, 2011

Page 11: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

FEATURES

Feature: Addition In order to make my library grow As a registered user I want to add movies to the library

Scenario: Add a movie Given I have no movies And I am on "home" When I follow "create" And I fill in "movie_title" with "Young Frankenstein" And I press "Submit" Then I should see "Young Frankenstein"

Tuesday, February 8, 2011

Page 12: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

STEPS

Given /^I have the following movies:$/ do |table| db = SQLite3::Database.new( "C:/temp/movielib.db" ) db.execute( "delete from Movie" ) ...end

Given /^I have no movies$/ do clear_databaseend

Tuesday, February 8, 2011

Page 13: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

HOW DOES IT WORK?

• Read scenario step

Given I have no movies

• Match regular expression

Given /^I have no movies$/

• Run the code associated to the regular expression

clear_database

Tuesday, February 8, 2011

Page 14: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

CAPYBARA

Tuesday, February 8, 2011

Page 15: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

WHAT

• Gem to simplify integration tests

• Inspired by Webrat

• Can be used with Cucumber steps or in any other test

• Easy to install: gem install capybara

Tuesday, February 8, 2011

Page 16: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

WHY

• Support for different web browsers (ie, firefox, chrome)

• Provides driver to run headless (virtual browser)

• Can tag scenarios to be run with a browser

• Supports remote web application (not rack)

• Supports asynchronous calls (AJAX)

Tuesday, February 8, 2011

Page 17: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

SETUPfeatures/support/capybara.rb

require 'capybara/cucumber'require 'selenium-webdriver'

#Capybara.default_driver = :culerityCapybara.default_driver = :selenium

Capybara.app_host = "http://localhost:1591" Capybara.run_server = falseCapybara.default_wait_time = 5Capybara.default_selector = :css

Capybara.register_driver :selenium do |app| #Capybara::Driver::Selenium.new(app, :browser => :ie) Capybara::Driver::Selenium.new(app, :browser => :chrome)end

Tuesday, February 8, 2011

Page 18: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

STEPS

• Given I am on the Home page

• When I go to the Projects page

• When I press “login”

• When I follow “help” within “support”

Tuesday, February 8, 2011

Page 19: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

STEPS II

• When I fill “username” with “mel”

• When I select “Winnipeg” from “cities”

• When I check “remember_me”

• When I uncheck “remember_me”

• When I choose “Option”

Tuesday, February 8, 2011

Page 20: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

STEPS III

• Then I should see “Welcome”

• Then I should not see “Welcome”

• Then the field “user” should contain “Mel”

• Then show me the page

Tuesday, February 8, 2011

Page 21: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

DEMO

Tuesday, February 8, 2011

Page 22: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

QUESTIONS?

Tuesday, February 8, 2011

Page 23: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

RESOURCES

• Email: [email protected]

• Twitter : @abarylko

• Materials: http://www.orthocoders.com/presentations

Tuesday, February 8, 2011

Page 24: Quality web-acceptance

Amir Barylko - MvcConf MavenThought Inc.

RESOURCES II

• Capybara: https://github.com/jnicklas/capybara

• Cucumber: https://github.com/aslakhellesoy/cucumber/wiki

• Culerity: https://github.com/langalex/culerity

• Celerity: http://celerity.rubyforge.org

• Selenium: http://seleniumhq.org

Tuesday, February 8, 2011


Recommended