SlideShare une entreprise Scribd logo
1  sur  70
 
Dima Kovalenko @dimacus www.agilesoftwaretesting.com www.dimakovalenko.com linked in.com/in/dimakovalen ko
Past Experience
Disclaimer > Dima.kind_of?(Developer) => false
Why automated tests?
Why automated tests? ,[object Object],[object Object],[object Object],[object Object],[object Object]
We don’t need Automated Tests!
We don’t need Automated Tests! The End See You all at Selenium 2012!
 
Selenium and Cucumber Img Source: http://pickledillies.homestead.com/
Overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Assumptions ,[object Object],[object Object],[object Object],[object Object]
The Stage
The Stage ,[object Object]
The Stage ,[object Object],[object Object]
The Stage ,[object Object],[object Object],[object Object]
The Stage ,[object Object],[object Object],[object Object],[object Object]
The Stage ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why automated tests? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Cucumber
Cucumber ,[object Object]
Cucumber ,[object Object],[object Object]
Cucumber ,[object Object],[object Object],[object Object]
Img Source: http://www.themoreyouknow.com/
Natural Language @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google Scenario: User Searches for Hello World on Google.com Given  I'm on Google's Home Page And  I search for Hello World Then  I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given  I'm on Bing's Home Page And  I search for Hello World Then  I should see car videos as first result
Step Definitions Given   /^I'm on Google's Home Page$/   do @selenium.open " www.google.com " end Given   /^I'm on Bing's Home Page$/   do @selenium.open " www.bing.com " end When   /^I  search for Hello World$/   do @selenium.type "q", "Hello World" end Then   /^I should see Wikipedia's Hello World article as 1st result$/   do assert_stuff end Then   /^I should see car videos as first result$/   do assert_stuff end
Why automated tests? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Who should be writing tests?
Who should be writing tests? ,[object Object],[object Object]
Who should be writing tests? ,[object Object],[object Object],[object Object],[object Object]
Who should be writing tests? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why automated tests? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Mind Map Solution
Why automated tests? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Good Features ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tags @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google @selenium Scenario: User Searches for Hello World on Google.com Given  I'm on Google's Home Page And  I search for Hello World Then  I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given  I'm on Bing's Home Page And  I search for Hello World Then  I should see car videos as first result
Tags @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google @selenium Scenario: User Searches for Hello World on Google.com Given  I'm on Google's Home Page And  I search for Hello World Then  I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given  I'm on Bing's Home Page And  I search for Hello World Then  I should see car videos as first result
Encourages BDD/TDD ,[object Object],[object Object],[object Object],[object Object],[object Object]
First run
First run
Write Step Definitions
Write More Step Definitions
Even More Step Definitions
Multiple Test Drivers Steam Celerity Culerity FireWatir SafariWatir ChromeWatir Img Source: Wikipedia
Selenium 1 support Before do | scenario | @selenium  =  Selenium::Client::Driver.new ( :host  => "localhost", :port  => 4444, :browser  => “firefox”, :url  => “ www.google.com ”) end
Selenium 1 Tip Use Hpricot Or Nokogiri!!! page =  Hpricot ( @selenium .get_html_source)
 
 
Selenium 2 support
Selenium 2 support ,[object Object]
Selenium 2 support ,[object Object],[object Object]
Capybara ,[object Object],[object Object],[object Object]
Multilingual JVM: JRuby, Java .NET: IronRuby, IronRuby .NET, Mono Adoby Flex: FunFX, Melomel Python Erlang Groovy Scala Closure Javascript Spring
Java Step Definition package cukes; import cuke4duke.annotation.I18n.EN.Given; import java.util.List; import java.util.ArrayList; public class BellySteps { private List<String> belly = new ArrayList<String>(); @Given(&quot;I have (d+) cukes in my belly&quot;) public void bellyCukes(int cukes) { for(int i = 0; i < cukes; i++) { belly.add(&quot;cuke &quot; + i); } } }
i18n
i18n Функционал:  Сложение чисел Чтобы не складывать в уме Все, у кого с этим туго Хотят автоматическое сложение целых чисел Сценарий:  Сложение двух целых чисел Допустим  я ввожу число 50 И  затем ввожу число 70 Если  я нажимаю &quot;+&quot; То  результатом должно быть число 120
i18n Chinese 功能 :  加法 為了避免愚蠢的錯誤 作為一個數學白痴  我希望有人能告訴我兩個數相加的結果 場景大綱 :   將兩個數相加 假 設我已經在計算機上輸入  < 數值 _1> 而 且我已經在計算機上輸入  < 數值 _2> 當 我按下  < 按鈕 > 那 麼螢幕上應該顯示  < 結果 >
i18n LOLz OH HAI:  STUFFING MISHUN:  CUCUMBR I CAN HAZ  IN TEH BEGINNIN 3 CUCUMBRZ WEN  I EAT 2 CUCUMBRZ DEN  I HAS 2 CUCUMBERZ IN MAH BELLY AN  IN TEH END 1 CUCUMBRZ KTHXBAI
Readable Test Results
Bad Features ,[object Object],[object Object],[object Object],[object Object],[object Object]
Regex Step Definitions ,[object Object],[object Object],[object Object]
Hard to find Step Definitions cucumber-tmbundle Vim Rails
Bad Features ,[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusion ,[object Object],[object Object],[object Object],[object Object],[object Object]
@dhh RSpec offends me aesthetically with no  discernible benefit for its added complexity over test/unit.
@dhh RSpec offends me aesthetically with no  discernible benefit for its added complexity over test/unit. Cucumber makes no sense to me unless you have clients  reading the tests.  Why would you build a test-specific parser  for English?
@dhh RSpec offends me aesthetically with no  discernible benefit for its added complexity over test/unit. Cucumber makes no sense to me unless you have clients  reading the tests.  Why would you build a test-specific parser  for English? The important thing is of course that we get people testing, so tools shouldn't matter too much....
Work @ Groupon www.groupon.com/techjobs
The End
 

Contenu connexe

Tendances

The LAZY Developer's Guide to BDD (with Cucumber)
The LAZY Developer's Guide to BDD (with Cucumber)The LAZY Developer's Guide to BDD (with Cucumber)
The LAZY Developer's Guide to BDD (with Cucumber)Tze Yang Ng
 
Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkinArati Joshi
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Gáspár Nagy
 
Put an end to regression with codeception testing
Put an end to regression with codeception testingPut an end to regression with codeception testing
Put an end to regression with codeception testingJoe Ferguson
 
Capybara testing
Capybara testingCapybara testing
Capybara testingFutureworkz
 
Rspec and Capybara Intro Tutorial at RailsConf 2013
Rspec and Capybara Intro Tutorial at RailsConf 2013Rspec and Capybara Intro Tutorial at RailsConf 2013
Rspec and Capybara Intro Tutorial at RailsConf 2013Brian Sam-Bodden
 
Writing automation tests with python selenium behave pageobjects
Writing automation tests with python selenium behave pageobjectsWriting automation tests with python selenium behave pageobjects
Writing automation tests with python selenium behave pageobjectsLeticia Rss
 
Front-end Automated Testing
Front-end Automated TestingFront-end Automated Testing
Front-end Automated TestingRuben Teijeiro
 
Composer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency ManagementComposer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency ManagementJoe Ferguson
 
Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamJoe Ferguson
 
QAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Technologies
 
Automated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and SeleniumAutomated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and SeleniumDev9Com
 
Testing Code.org's Interactive CS Curriculum
Testing Code.org's Interactive CS CurriculumTesting Code.org's Interactive CS Curriculum
Testing Code.org's Interactive CS CurriculumBrian Jordan
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with CucumberAsheesh Mehdiratta
 
Behavior Driven Development - How To Start with Behat
Behavior Driven Development - How To Start with BehatBehavior Driven Development - How To Start with Behat
Behavior Driven Development - How To Start with Behatimoneytech
 
Testing Any Site With Cucumber and Selenium
Testing Any Site With Cucumber and SeleniumTesting Any Site With Cucumber and Selenium
Testing Any Site With Cucumber and SeleniumChris Johnson
 
Selenium and Sauce Labs
Selenium and Sauce LabsSelenium and Sauce Labs
Selenium and Sauce Labshugs
 

Tendances (20)

The LAZY Developer's Guide to BDD (with Cucumber)
The LAZY Developer's Guide to BDD (with Cucumber)The LAZY Developer's Guide to BDD (with Cucumber)
The LAZY Developer's Guide to BDD (with Cucumber)
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and CucumberTest Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
 
Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkin
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
 
Cucumber BDD
Cucumber BDDCucumber BDD
Cucumber BDD
 
Put an end to regression with codeception testing
Put an end to regression with codeception testingPut an end to regression with codeception testing
Put an end to regression with codeception testing
 
Capybara testing
Capybara testingCapybara testing
Capybara testing
 
Rspec and Capybara Intro Tutorial at RailsConf 2013
Rspec and Capybara Intro Tutorial at RailsConf 2013Rspec and Capybara Intro Tutorial at RailsConf 2013
Rspec and Capybara Intro Tutorial at RailsConf 2013
 
Writing automation tests with python selenium behave pageobjects
Writing automation tests with python selenium behave pageobjectsWriting automation tests with python selenium behave pageobjects
Writing automation tests with python selenium behave pageobjects
 
Front-end Automated Testing
Front-end Automated TestingFront-end Automated Testing
Front-end Automated Testing
 
Composer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency ManagementComposer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency Management
 
Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small team
 
QAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with Appium
 
Automated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and SeleniumAutomated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and Selenium
 
Cypress workshop for JSFoo 2019
Cypress  workshop for JSFoo 2019Cypress  workshop for JSFoo 2019
Cypress workshop for JSFoo 2019
 
Testing Code.org's Interactive CS Curriculum
Testing Code.org's Interactive CS CurriculumTesting Code.org's Interactive CS Curriculum
Testing Code.org's Interactive CS Curriculum
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with Cucumber
 
Behavior Driven Development - How To Start with Behat
Behavior Driven Development - How To Start with BehatBehavior Driven Development - How To Start with Behat
Behavior Driven Development - How To Start with Behat
 
Testing Any Site With Cucumber and Selenium
Testing Any Site With Cucumber and SeleniumTesting Any Site With Cucumber and Selenium
Testing Any Site With Cucumber and Selenium
 
Selenium and Sauce Labs
Selenium and Sauce LabsSelenium and Sauce Labs
Selenium and Sauce Labs
 

En vedette

QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...QAFest
 
Continuous Security Testing
Continuous Security TestingContinuous Security Testing
Continuous Security TestingSteven Mak
 
QA Fest 2015. Игорь Хрол. Тестировщик в Agile - кто это?
QA Fest 2015. Игорь Хрол. Тестировщик в Agile - кто это?QA Fest 2015. Игорь Хрол. Тестировщик в Agile - кто это?
QA Fest 2015. Игорь Хрол. Тестировщик в Agile - кто это?QAFest
 
Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)泰 増田
 
TDC2016SP - Trilha Embarcados
TDC2016SP - Trilha EmbarcadosTDC2016SP - Trilha Embarcados
TDC2016SP - Trilha Embarcadostdc-globalcode
 
Robot Framework Dos And Don'ts
Robot Framework Dos And Don'tsRobot Framework Dos And Don'ts
Robot Framework Dos And Don'tsPekka Klärck
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework IntroductionPekka Klärck
 
Mobile automation using selenium cucumber & appium
Mobile automation using selenium cucumber & appiumMobile automation using selenium cucumber & appium
Mobile automation using selenium cucumber & appiumSelenium Cucumber
 

En vedette (8)

QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
 
Continuous Security Testing
Continuous Security TestingContinuous Security Testing
Continuous Security Testing
 
QA Fest 2015. Игорь Хрол. Тестировщик в Agile - кто это?
QA Fest 2015. Игорь Хрол. Тестировщик в Agile - кто это?QA Fest 2015. Игорь Хрол. Тестировщик в Agile - кто это?
QA Fest 2015. Игорь Хрол. Тестировщик в Agile - кто это?
 
Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)
 
TDC2016SP - Trilha Embarcados
TDC2016SP - Trilha EmbarcadosTDC2016SP - Trilha Embarcados
TDC2016SP - Trilha Embarcados
 
Robot Framework Dos And Don'ts
Robot Framework Dos And Don'tsRobot Framework Dos And Don'ts
Robot Framework Dos And Don'ts
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introduction
 
Mobile automation using selenium cucumber & appium
Mobile automation using selenium cucumber & appiumMobile automation using selenium cucumber & appium
Mobile automation using selenium cucumber & appium
 

Similaire à Selenium and Cucumber Selenium Conf 2011

Behaviour driven infrastructure
Behaviour driven infrastructureBehaviour driven infrastructure
Behaviour driven infrastructureLindsay Holmwood
 
Graceful Failure with Selenium and Continuous Integration
Graceful Failure with Selenium and Continuous IntegrationGraceful Failure with Selenium and Continuous Integration
Graceful Failure with Selenium and Continuous IntegrationChris B. France
 
Browser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.jsBrowser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.jsLuís Bastião Silva
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Applitools
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Matt Raible
 
jQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontojQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontoRalph Whitbeck
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudCarlos Sanchez
 
Introduction to Selenium and Test Automation
Introduction to Selenium and Test AutomationIntroduction to Selenium and Test Automation
Introduction to Selenium and Test AutomationAhmed Mubbashir Khan
 
Getting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
Getting Started with Test Automation: Introduction to Cucumber with Lapis LazuliGetting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
Getting Started with Test Automation: Introduction to Cucumber with Lapis LazuliRebecca Eloise Hogg
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
 
Continuous integration with Git & CI Joe
Continuous integration with Git & CI JoeContinuous integration with Git & CI Joe
Continuous integration with Git & CI JoeShawn Price
 
Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"GoIT
 
Introduction to Selenium
Introduction to SeleniumIntroduction to Selenium
Introduction to Seleniumrohitnayak
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support developmentChema del Barco
 
Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019Todd Jordan
 

Similaire à Selenium and Cucumber Selenium Conf 2011 (20)

Behaviour driven infrastructure
Behaviour driven infrastructureBehaviour driven infrastructure
Behaviour driven infrastructure
 
Graceful Failure with Selenium and Continuous Integration
Graceful Failure with Selenium and Continuous IntegrationGraceful Failure with Selenium and Continuous Integration
Graceful Failure with Selenium and Continuous Integration
 
Browser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.jsBrowser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.js
 
Selenium
SeleniumSelenium
Selenium
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
 
jQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontojQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days Toronto
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The Cloud
 
Cucumber tutorial
Cucumber tutorialCucumber tutorial
Cucumber tutorial
 
Integration Testing in Python
Integration Testing in PythonIntegration Testing in Python
Integration Testing in Python
 
Introduction to Selenium and Test Automation
Introduction to Selenium and Test AutomationIntroduction to Selenium and Test Automation
Introduction to Selenium and Test Automation
 
Getting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
Getting Started with Test Automation: Introduction to Cucumber with Lapis LazuliGetting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
Getting Started with Test Automation: Introduction to Cucumber with Lapis Lazuli
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
Continuous integration with Git & CI Joe
Continuous integration with Git & CI JoeContinuous integration with Git & CI Joe
Continuous integration with Git & CI Joe
 
Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"
 
Introduction to Selenium
Introduction to SeleniumIntroduction to Selenium
Introduction to Selenium
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support development
 
Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019
 
BCS Selenium Workshop
BCS Selenium WorkshopBCS Selenium Workshop
BCS Selenium Workshop
 

Plus de dimakovalenko

Scaling and Managing Selenium Grid
Scaling and Managing Selenium GridScaling and Managing Selenium Grid
Scaling and Managing Selenium Griddimakovalenko
 
Managing Large Selenium Grid
Managing Large Selenium Grid�Managing Large Selenium Grid�
Managing Large Selenium Griddimakovalenko
 
Selenium Conf 2013 Lightning Talk - Any-Branch
Selenium Conf 2013 Lightning Talk - Any-BranchSelenium Conf 2013 Lightning Talk - Any-Branch
Selenium Conf 2013 Lightning Talk - Any-Branchdimakovalenko
 
Stabilizing SE Build - Selenium conf 2013
Stabilizing SE Build - Selenium conf 2013 Stabilizing SE Build - Selenium conf 2013
Stabilizing SE Build - Selenium conf 2013 dimakovalenko
 
Jasmine presentation Selenium Camp 2013
Jasmine presentation Selenium Camp 2013Jasmine presentation Selenium Camp 2013
Jasmine presentation Selenium Camp 2013dimakovalenko
 
Cucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet UpCucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet Updimakovalenko
 

Plus de dimakovalenko (8)

Scaling and Managing Selenium Grid
Scaling and Managing Selenium GridScaling and Managing Selenium Grid
Scaling and Managing Selenium Grid
 
Managing Large Selenium Grid
Managing Large Selenium Grid�Managing Large Selenium Grid�
Managing Large Selenium Grid
 
Selenium Conf 2013 Lightning Talk - Any-Branch
Selenium Conf 2013 Lightning Talk - Any-BranchSelenium Conf 2013 Lightning Talk - Any-Branch
Selenium Conf 2013 Lightning Talk - Any-Branch
 
Stabilizing SE Build - Selenium conf 2013
Stabilizing SE Build - Selenium conf 2013 Stabilizing SE Build - Selenium conf 2013
Stabilizing SE Build - Selenium conf 2013
 
Jasmine presentation Selenium Camp 2013
Jasmine presentation Selenium Camp 2013Jasmine presentation Selenium Camp 2013
Jasmine presentation Selenium Camp 2013
 
Selenium camp v1
Selenium camp v1Selenium camp v1
Selenium camp v1
 
Cucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet UpCucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet Up
 
Evergreen build
Evergreen buildEvergreen build
Evergreen build
 

Dernier

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Dernier (20)

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Selenium and Cucumber Selenium Conf 2011

  • 1.  
  • 2. Dima Kovalenko @dimacus www.agilesoftwaretesting.com www.dimakovalenko.com linked in.com/in/dimakovalen ko
  • 6.
  • 7. We don’t need Automated Tests!
  • 8. We don’t need Automated Tests! The End See You all at Selenium 2012!
  • 9.  
  • 10. Selenium and Cucumber Img Source: http://pickledillies.homestead.com/
  • 11.
  • 12.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 21.
  • 22.
  • 23.
  • 25. Natural Language @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google Scenario: User Searches for Hello World on Google.com Given I'm on Google's Home Page And I search for Hello World Then I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given I'm on Bing's Home Page And I search for Hello World Then I should see car videos as first result
  • 26. Step Definitions Given /^I'm on Google's Home Page$/ do @selenium.open &quot; www.google.com &quot; end Given /^I'm on Bing's Home Page$/ do @selenium.open &quot; www.bing.com &quot; end When /^I search for Hello World$/ do @selenium.type &quot;q&quot;, &quot;Hello World&quot; end Then /^I should see Wikipedia's Hello World article as 1st result$/ do assert_stuff end Then /^I should see car videos as first result$/ do assert_stuff end
  • 27.
  • 28. Who should be writing tests?
  • 29.
  • 30.
  • 31.
  • 32.
  • 34.
  • 35.
  • 36. Tags @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google @selenium Scenario: User Searches for Hello World on Google.com Given I'm on Google's Home Page And I search for Hello World Then I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given I'm on Bing's Home Page And I search for Hello World Then I should see car videos as first result
  • 37. Tags @search Feature: Searching For Hello World, and some more overview of the feature that we are trying to test @google @selenium Scenario: User Searches for Hello World on Google.com Given I'm on Google's Home Page And I search for Hello World Then I should see Wikipedia's Hello World article as 1st result @bing Scenario: User Searches for Hello World on Bing.com Given I'm on Bing's Home Page And I search for Hello World Then I should see car videos as first result
  • 38.
  • 42. Write More Step Definitions
  • 43. Even More Step Definitions
  • 44. Multiple Test Drivers Steam Celerity Culerity FireWatir SafariWatir ChromeWatir Img Source: Wikipedia
  • 45. Selenium 1 support Before do | scenario | @selenium = Selenium::Client::Driver.new ( :host => &quot;localhost&quot;, :port => 4444, :browser => “firefox”, :url => “ www.google.com ”) end
  • 46. Selenium 1 Tip Use Hpricot Or Nokogiri!!! page = Hpricot ( @selenium .get_html_source)
  • 47.  
  • 48.  
  • 50.
  • 51.
  • 52.
  • 53. Multilingual JVM: JRuby, Java .NET: IronRuby, IronRuby .NET, Mono Adoby Flex: FunFX, Melomel Python Erlang Groovy Scala Closure Javascript Spring
  • 54. Java Step Definition package cukes; import cuke4duke.annotation.I18n.EN.Given; import java.util.List; import java.util.ArrayList; public class BellySteps { private List<String> belly = new ArrayList<String>(); @Given(&quot;I have (d+) cukes in my belly&quot;) public void bellyCukes(int cukes) { for(int i = 0; i < cukes; i++) { belly.add(&quot;cuke &quot; + i); } } }
  • 55. i18n
  • 56. i18n Функционал: Сложение чисел Чтобы не складывать в уме Все, у кого с этим туго Хотят автоматическое сложение целых чисел Сценарий: Сложение двух целых чисел Допустим я ввожу число 50 И затем ввожу число 70 Если я нажимаю &quot;+&quot; То результатом должно быть число 120
  • 57. i18n Chinese 功能 : 加法 為了避免愚蠢的錯誤 作為一個數學白痴 我希望有人能告訴我兩個數相加的結果 場景大綱 : 將兩個數相加 假 設我已經在計算機上輸入 < 數值 _1> 而 且我已經在計算機上輸入 < 數值 _2> 當 我按下 < 按鈕 > 那 麼螢幕上應該顯示 < 結果 >
  • 58. i18n LOLz OH HAI: STUFFING MISHUN: CUCUMBR I CAN HAZ IN TEH BEGINNIN 3 CUCUMBRZ WEN I EAT 2 CUCUMBRZ DEN I HAS 2 CUCUMBERZ IN MAH BELLY AN IN TEH END 1 CUCUMBRZ KTHXBAI
  • 60.
  • 61.
  • 62. Hard to find Step Definitions cucumber-tmbundle Vim Rails
  • 63.
  • 64.
  • 65. @dhh RSpec offends me aesthetically with no discernible benefit for its added complexity over test/unit.
  • 66. @dhh RSpec offends me aesthetically with no discernible benefit for its added complexity over test/unit. Cucumber makes no sense to me unless you have clients reading the tests. Why would you build a test-specific parser for English?
  • 67. @dhh RSpec offends me aesthetically with no discernible benefit for its added complexity over test/unit. Cucumber makes no sense to me unless you have clients reading the tests. Why would you build a test-specific parser for English? The important thing is of course that we get people testing, so tools shouldn't matter too much....
  • 68. Work @ Groupon www.groupon.com/techjobs
  • 70.