SlideShare a Scribd company logo
Nick Belhomme January 26th,   PHPBenelux Conference 2013, Belgium
Nick Belhomme
International Conference Speaker


Contributor to various Open Source
Projects


Building Constructor


Software Architect / Project Lead


Loving Husband


Freelance PHP Consultant


PHP QA trainer


Your host for the upcoming hour
Selenium
       34
    Claims, Benefits:

    Prevents cancer

    Aging
Selenium – the web browser
automation tool set

Recommended for you

Selenium Ide Tutorial
Selenium Ide TutorialSelenium Ide Tutorial
Selenium Ide Tutorial

Selenium IDE is a Firefox add-on that allows users to automate web application testing. It can record, edit, and debug tests of websites. This tutorial explains how to install Selenium IDE and record a basic test by searching Google for "selenium". It then enhances the test with assertions to validate results. The tutorial also demonstrates how to run the same test from PHP code using Selenium Remote Control (RC) and PHPUnit for automated testing.

seleniumphp
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011

Selenium is a suite of tools to automate web browser testing. It supports Selenium IDE for recording tests in Firefox, Selenium RC for running tests in multiple browsers, and Selenium WebDriver for communicating directly with browser drivers. When integrating Selenium with Drupal, the DrupalSeleniumWebTestCase class and API can be used to write tests that log in, access pages, and interact with elements. Tests are run via PHPUnit on a headless server like Xvfb to avoid showing a GUI.

drupalui testingsimpletest
#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"
#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"
#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"

#Keynote Session by Aditya Garg, "Selenium 4 Observability – a 90 Min Hands on Lab" at #ATAGTR2021. #ATAGTR2021 was the 6th Edition of Global Testing Retreat. The video recording of the session is now available on the following link: https://www.youtube.com/watch?v=Ud54lj9jO70 To know more about #ATAGTR2021, please visit: https://gtr.agiletestingalliance.org/

agile testing allianceatagtr2021global testing retreat
Acceptance Tests
●   System tests
●   Black box
●   Functional testing
Browser Compatibility Tests
●   Different Browsers
●   Different Operating Systems
Regression Tests

●   Internal Changes
●   Partner Changes
Tools
●   Humans
●   Capture and replay
●   Scripts and bots
●   Selenium

Recommended for you

Selenium
SeleniumSelenium
Selenium

Selenium is an open source tool for automating web application testing across browsers. It supports testing web applications on multiple browsers and operating systems. Selenium has different modes including a test runner mode using HTML tables to write tests, a record and playback mode using the Selenium IDE Firefox extension, and a remote control mode to write tests in various programming languages. Tests can be integrated with continuous integration to help catch bugs early.

Selenium IDE Introduction, Installation and Working
Selenium IDE Introduction, Installation and WorkingSelenium IDE Introduction, Installation and Working
Selenium IDE Introduction, Installation and Working

Selenium IDE : Introduction, Installing Selenium IDE and FireBug, Selenium IDE Basics : Menu Bar, Tool Bar, Record & Replay, Test Suite Vs Test Case, Create/Execute a Test Suite

selenium idefirebugtest suite
Selenium
SeleniumSelenium
Selenium

Selenium is a tool for automating web application testing that allows tests to be written in various programming languages; it has multiple components including Selenium IDE for recording and playback of tests in Firefox, and Selenium RC which allows tests to be run from external languages and provides more power and flexibility than the IDE. Tests can be used to check for correct behavior and responses across different browsers and platforms as well as catch regressions.

Manual Testing
●   Time-intensive
●   Nerve-stretching
●   Human error / understanding of the flow
●   Costly
Capture and Replay
●   Captures mouse movements and inputs
●   Replays later
●   Screenresolution, operating systems, window
    sizes, makes this very unmaintainable
Scripts and Bots
●   Bot makes screen-shots, analyzes them for
    visual blocks
●   Calculates visual blocks x-y positions and
    generates mouse clicks on that location and
    user input.
●   Generating a test is time-intensive
●   Error prone on design changes.
Selenium
●   Records and playback browser tests
●   Asserts on DOM
●   Javascript is being executed and testable
●   Css selectors or xpath position sensitive
●   Hard to detect layout errors

Recommended for you

QSpiders - Automation using Selenium
QSpiders - Automation using SeleniumQSpiders - Automation using Selenium
QSpiders - Automation using Selenium

The document discusses automation testing using Selenium. It provides an overview of Selenium, including what it is, its components like Selenium IDE, Selenium RC, Selenium Grid, and Selenium WebDriver. It explains the features and advantages of each component. Selenium is an open source tool that allows automated testing of web applications across different browsers and platforms. It supports recording and playback of tests and can help reduce testing time and costs through automation.

automationseleniumqspiders
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt

Selenium is a suite of tools used for browser automation testing. It was introduced in 2004 and is developed using JavaScript. Selenium has four main components: IDE, Remote Control, WebDriver and Grid. It is used to test web applications and can perform functional, regression and load testing. The Selenium IDE records user interactions in the Firefox browser and exports test cases to various languages. It has advantages like being open source and easy to use, but only supports the Firefox browser.

selenium ide
Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011

This document summarizes a presentation about Selenium 2 given by Jason Huggins. The presentation provided an overview of Selenium, including the different components like Selenium IDE, Builder, RC and Grid. It described why Selenium 2 was created and what it is. It demonstrated how to run tests on mobile browsers, and provided code examples for different languages. The presentation highlighted improvements in Selenium 2 like a cleaner API, support for mobile testing, and removing the need to run a server.

 
by hugs
selenium2androidmobile
Learning Curve

●   Jump in quickly
●   Steep – If you want to do it right
●   Mastering it – creating readable,
    understandable, maintainable and robust tests -
    takes time and effort.
Worth it

           Ask a Salary
           Increase
           and
           own a second
           modest
           vacation property
And as an added bonus
●   Better code architecture
●   More functional code
●   High browser compatibility
●   No more regressions
●   Neat cool stuff to brag about at your local pub!!!
Setting it up client side

Recommended for you

Selenium - Introduction
Selenium - IntroductionSelenium - Introduction
Selenium - Introduction

In this session you will learn: FEATURES OF SELENIUM COMPONETS OF SELENIUM SELENIUM IDE SELENIUM RC SELENIUM Web Driver SELENIUM GRID SELENESE For more information: https://www.mindsmapped.com/courses/quality-assurance/qa-software-testing-training-for-beginners/

qa trainingquality assurance trainingonline qa training
Automated UI testing with Selenium
Automated UI testing with SeleniumAutomated UI testing with Selenium
Automated UI testing with Selenium

Selenium is a tool for automating web application testing. It supports several components including Selenium IDE for recording tests in Firefox, Selenium RC for running tests across browsers, and Selenium 2 which uses the WebDriver API to control browsers natively. When integrating Selenium with Drupal, tests can be written using the DrupalSeleniumWebTestCase class which provides methods to interact with Drupal and Selenium. Tests are run by starting a headless Xvfb server before launching the Selenium server from the command line.

drupalui testingsimpletest
Selenium
SeleniumSelenium
Selenium

This document discusses testing web applications using Selenium. It begins by outlining some of the unique challenges of web application testing, including heterogeneous systems with different front-end and back-end components, dynamic pages generated by JavaScript, and security concerns. It then introduces Selenium, an open source tool for automating web application testing. Selenium WebDriver allows testing web applications across browsers and platforms in a programmatic way. The document provides examples of how to use Selenium WebDriver to test a web page, such as verifying the page title. It also discusses challenges like asynchronous behavior that require waiting for elements to load. Finally, it outlines the course project, which involves designing and implementing Selenium tests for adding a new class in the SchoolMate web application

Selenium IDE
    Firefox Plugin:
    http://release.seleniumhq.org/selenium-ide/1.10.0/selenium-ide-1.10.0.xpi


●
    Easy record and playback
●   Intelligent field selection will use IDs, names, or XPath as needed
●
    Autocomplete for all common Selenium commands
●   Walk through tests
●
    Debug and set breakpoints
●   Save tests as HTML, PHPUnit, or any other format
●
    Support for Selenium user-extensions.js file
●
    Option to automatically assert the title of every page
●
    Easy customization through plugins
Selenium IDE
Test Suite Control Flow
X-forwarding
    run software on remote machine and display the GUI locally


●   Linux and Mac OS X support X Forwarding with no extra
    software
       ssh -X
●   Windows needs extra software
       Xming

Recommended for you

Introduction to Selenium Web Driver
Introduction to Selenium Web DriverIntroduction to Selenium Web Driver
Introduction to Selenium Web Driver

The document provides an introduction to Selenium WebDriver. It discusses the architecture and components of Selenium 1.0 and 2.0. It describes the Selenium WebDriver API for finding elements, performing actions, and handling windows/frames. It also provides an example of creating a test in Java to validate search results on the Rambler website using Selenium WebDriver.

Automated Web Testing With Selenium
Automated Web Testing With SeleniumAutomated Web Testing With Selenium
Automated Web Testing With Selenium

The document discusses a presentation on automated web testing using Selenium. The agenda includes an introduction to Selenium, a demo, different ways to use Selenium, best practices, and a question and answer session. It also includes polls about web testing experience and which frameworks are used as well as descriptions of what Selenium is and how it can be used for testing web applications across browsers and operating systems.

Selenium
SeleniumSelenium
Selenium

The document provides an overview of Selenium, an open source test automation tool. It discusses Selenium's origin and capabilities, how to use the Selenium IDE and Core, testing applications with different Selenium components, and examples of using Selenium to test applications in different browsers and with data-driven testing.

Xming
                     (X-forwarding for windows)

http://sourceforge.net/projects/xming/files/latest/download

Configure Xming
   Windows Start => Xming => XLaunch
   Display settings dialog box:
     Multiple windows
     Display number as 0
   Keep clicking next then Finish.
Putty (windows)



●   Connection => SSH => X11
●   Enable X11 forwarding
●   Set X display location as :0.0
Setting it up server side
       (headless)
Firefox

●   [64 bit] wget
    http://download-origin.cdn.mozilla.net/pub/mozilla.org/firefox/relea
●   [32 bit] wget
    http://download-origin.cdn.mozilla.net/pub/mozilla.org/firefox/relea

●   tar -jxvf firefox-18.0.tar.bz2 -C /opt
●   ln -s /opt/firefox/firefox /usr/bin/firefox
●
    Firefox (No X-Display needed thanks to forwarding)

Recommended for you

Selenium- A Software Testing Tool
Selenium- A Software Testing ToolSelenium- A Software Testing Tool
Selenium- A Software Testing Tool

Selenium is a suite of tools for automating web application testing. It originated in 2004 as JavaScript Functional Tester and was later renamed Selenium. Selenium 2 (WebDriver) was developed in 2008 to address limitations of the original Selenium (RC) by communicating directly with browsers instead of through JavaScript. Selenium is composed of several tools including IDE for recording tests, RC for older tests, Grid for distributed testing, and WebDriver as the main automation tool supporting direct browser communication and a variety of programming languages and browsers.

software testing toolseleniumsoftware testing
Selenium introduction
Selenium introductionSelenium introduction
Selenium introduction

Selenium is an open source tool used for automating web applications. It was developed in 2004 by Jason Huggins at Thoughtworks. Selenium records and replays actions on a browser. It supports many programming languages and all major browsers. Some key advantages are that it is free, open source, and supports cross-browser testing. Selenium is best for automating web-based functional and regression test cases. It has various components like Selenium IDE, RC, WebDriver, and Grid that facilitate browser automation.

what is seleniumselenium introductionwebdriver
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium

Selenium is an open source browser automation tool used for automating web application testing. It supports recording and playback of test cases in multiple programming languages like Java, Python and Ruby. Selenium has several components like Selenium IDE for recording and playing back tests without coding, Selenium RC for running tests on remote machines, and Selenium Webdriver which allows directly controlling browser behavior without relying on external servers. Selenium Grid enables parallel execution of tests on different machines for faster test runs. Selenium is used by many companies for testing web applications and is useful for both functional and regression testing of websites and web apps.

software testingjavaselenium
Completely headless
              (no X-forwarding)
●   Install Xvfb
      aptitude install Xvfb
●   Update to latest java version
      aptitude install sun-java6-jre
●   Download the latest Selenium Server Jar
    package
      wget http://selenium.googlecode.com/files/selenium-
      server-standalone-2.28.0.jar
Test driving Selenium RC
                (X-forwarding)

To test-drive it is always easier to first use X-forwarding:


java -jar selenium-server-standalone-2.28.0.jar -htmlSuite
*firefox "http://www.domaintocheck.com"
“/path/to/selenium/testSuite.html”
“/path/where/selenium/should/store/results.html”

testSuite.html and related files are the files saved by Selenium IDE
Test driving Selenium RC
           (X Virtual Frame Buffer)
●   Open a connection and run Xvfb
      Xvfb :99


●   Open another connection and run selenium

    export DISPLAY=:99 & java -jar selenium-server-
    standalone-2.28.0.jar -htmlSuite *firefox
    "http://www.domaintocheck.com"
    “/path/to/selenium/testSuite.html”
    “/path/where/selenium/should/store/results.html”
Integrate into



    Make certain your Jenkins server is started with Xvfb run on :99
    ●   Check with:
            ps -ef | grep Xvfb
    ●   If not running then issue a
          Xvfb :99
          CTRL + Z
●   Log into Jenkins: manage Jenkins -> Manage Plugins
        install “Hudson Seleniumhq plugin”

Recommended for you

Selenium ppt
Selenium pptSelenium ppt
Selenium ppt

This document provides an overview of Selenium, an open source tool for automating web application testing. It discusses Selenium's features, components including Selenium IDE, RC, and Grid. It also covers Selenium commands called Selenium and how to perform testing with Selenium by writing reusable scripts and validating applications with conditionals. Selenium allows testing across browsers and OS using different programming languages in a flexible and cost-effective manner compared to other testing tools.

Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring InsightSplunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight

The Synthetic Monitoring App enables you to monitor your Web application and measure critical KPIs such as application performance and availability. This session showcases how this app can simulate user interactions around the clock and set up alerts when your application breaches its performance and availability SLAs. Elias Haddad shows how you can proactively detect application problems before your customers do. Learn how you can compare the end user performance of your application from different locations, various browsers and from a myriad of devices and isolate performance bottlenecks to prevent outages.

application managementsplunk.conf
Selenium Grid
Selenium GridSelenium Grid
Selenium Grid

Selenium Grid allows maintaining a cluster of Selenium RC servers, configuring tests for different environments, and parallelizing tests. It works by having a Grid Hub that manages Selenium Grid Nodes, which each run a Selenium RC Server. The Hub maps environment names like "linux_firefox_3_6" to specific browsers, and clients connect using environment names. This allows the Hub to route clients to available Nodes matching the requested environment.

seleinum
Setup a Job
●   Create a new freestyle job
Mastering selenium for automated acceptance tests
Mastering selenium for automated acceptance tests
Problem
●   remote control is slow at driving the browser.

●   limited number of concurrent tests on the same
    remote control before seriously impacting its
    stability.

●   Multiple Selenium Remote Controls In Jenkins
    to work around the limitation on the number of
    parallel tests.

Recommended for you

Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Selenium

This presentation covers an introduction to Selenium, the Open Source, cross browser, cross platform functional testing tool. The talk emphasized the importance of applying the same principles to testing (abstraction, refactoring, DRY) that development teams apply to developing software. (This presentation was used for a talk at the Asian Testing Conference)

Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver

Automation testing can be performed using Selenium WebDriver which provides advantages like frequent regression testing, rapid feedback to developers, and finding defects missed by manual testing. Selenium has evolved over time, initially starting as a project called WebDriver at Google to solve Selenium's pain points. It now supports various browsers and locators can be used to identify elements on the page for automation.

cuelogicselenium testingselenium web driver
JAVA User Group Bern - Selenium
JAVA User Group Bern  - SeleniumJAVA User Group Bern  - Selenium
JAVA User Group Bern - Selenium

Selenium is an open source tool for automating web browsers across many platforms and browsers. It was named Selenium as a cure for Mercury Interactive testing software, similar to how selenium supplements cure mercury poisoning. The document discusses how eBay uses Selenium for automated testing, including building a grid for parallel testing on virtual machines, implementing page object models, and extending Selenium to test mobile web and native apps through projects like Calabash and iOS driver. It also notes the benefits of open source testing tools and how eBay contributes solutions back to the Selenium community.

michael palotasopen sourceinnovation
The Grid

●   Run tests against multiple browsers

●   multiple versions of browser

●   browsers running on different operating systems

●   To reduce the time it takes for the test suite to
    complete a test pass.
Mastering selenium for automated acceptance tests
The Hub
●   1 instance

●   Allocating a Selenium Remote Control to a specific
    test (transparently)

●   Limiting the number of concurrent test runs on each
    Remote Control

●   Shielding the tests from the actual grid
    infrastructure
A Node
●   Remote Control

●   Multiple instances (across machines preferably)

●   Multiple Browsers

●   Can be configured using a json file

Recommended for you

Automated Testing with Selenium
Automated Testing with SeleniumAutomated Testing with Selenium
Automated Testing with Selenium

Short overview of Automated Testing of Web Shop & Paywall in project WHIP, originally presented @ Tamedia:TX 2015

selenium gui automation automated testing web shop
How to work with Selenium Grid: a quick walkthrough
How to work with Selenium Grid: a quick walkthroughHow to work with Selenium Grid: a quick walkthrough
How to work with Selenium Grid: a quick walkthrough

Selenium Grid is a tool that distributes tests across multiple machines to accelerate the testing process. It has a hub that triggers tests and nodes that execute them. To use the grid, one configures the hub and nodes, develops and prepares tests in an XML file, then executes the tests across different browsers in parallel. The document provides details on setting up and using Selenium Grid to distribute tests across a cluster of machines.

selenium
Selenium Automation
Selenium AutomationSelenium Automation
Selenium Automation

Selenium is a set of different software tools each with a different approach to supporting test automation.

seleniumwebdriverqa
Setting up the grid
●   Start the hub
      java -jar selenium-server-standalone-2.28.0.jar -role hub



●   Start nodes on separate machines
      java -jar selenium-server-standalone-2.28.0.jar -role
      node -hub http://hub-address:4444/grid/register
http://hub-address:4444/grid/console
Optimizing a Node with js
     ●   java -jar selenium-server-standalone-2.28.0.jar -role node -nodeConfig nodeConfig.js


    //nodeConfig.js
{
    "class":"org.openqa.grid.common.RegistrationRequest",
    "capabilities":[
         {
              "platform":"VISTA",
              "seleniumProtocol":"Selenium",
              "browserName":"*firefox",
              "maxInstances":5
         },
         {
              "platform":"VISTA",
              "seleniumProtocol":"Selenium",
              "browserName":"*iexplore",
              "maxInstances":1
         }
    ],

Recommended for you

Practical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test AutomationPractical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test Automation

Have unanswered Selenium questions? Want to learn how to use Selenium like a Pro? Join Dave Haeffner - author of The Selenium Guidebook - as he steps through the best and most useful tips & tricks from his weekly Selenium tip newsletter (Elemental Selenium).

selenium testingsauce labsselenium test automation
Meet the Selenium Grid
Meet the Selenium GridMeet the Selenium Grid
Meet the Selenium Grid

Want to run your tests fast, in multiple threads, different browsers and operation systems? Selenium Grid is for you. Do you have complex UI components? How to run Sikuli image recognition with Selenium tests on the grid? check http://sterodium.io/

software testingautomationselenium
SoftQL - Telecom Triage Services
SoftQL - Telecom Triage Services SoftQL - Telecom Triage Services
SoftQL - Telecom Triage Services

This document outlines a proposal for managed services and network optimization. It proposes taking a centralized approach using a team of experienced engineers and proprietary tools for triaging alarms, optimizing performance, and automating daily reporting. Key aspects of the proposal include hourly monitoring and prioritization of issues, root cause analysis, and developing optimization recommendations to resolve chronic network problems. Automation of daily reports is highlighted as an important part of the services for monitoring key performance indicators and tracking the status of trouble tickets and cell health.

alarm monitoringtelecommunicationstriage
"configuration":{
        "port":5555,
        "register":true,
        "host":"node-address",
        "proxy":"org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
        "maxSession":5,
        "role":"node",
        "hubHost":"hub-address",
        "registerCycle":5000,
        "hub":"http://hub-address:4444/grid/register",
        "hubPort":4444,
        "url":"http://node-address:5555",
        "remoteHost":"http://node-address:5555"
    }
}
http://hub-address:4444/grid/console
Run the suite
●   No Native HTML Selenese tests support

●   Web driver needed

●   PHPUnit
+ Selenium Web Driver

wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit.phar

Recommended for you

Selenium RC: Automated Testing of Modern Web Applications
Selenium RC: Automated Testing of Modern Web ApplicationsSelenium RC: Automated Testing of Modern Web Applications
Selenium RC: Automated Testing of Modern Web Applications

This talk is concerned with automated testing of Web applications. It looks at testing Web apps in general, its goals and challenges; it will present Selenium and Selenium RC in particular as a testing platform; and will then focus on adaptions made to Selenium to ease the effort to test apps made with qooxdoo, a JavaScript framework.

qooxdoodlw_europe08selenium
Selenium Primer
Selenium PrimerSelenium Primer
Selenium Primer

An introduction to Selenium, which is a suite of tools such as Selenium IDE and Selenium RC used for automated testing of web applications.

thoughtworksidefirefox
淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)

Geb 是瀏覽器自動化的解決方案,帶給網站開發團隊更棒的自動化測試流程,它以 Selenium WebDriver 為基礎,提供類似 jQuery 的 DOM 操作,使用易讀易寫的 Groovy DSL 語法撰寫 Test Script,可以搭配 JUnit 或 Spock 測試框架及 Jenkins CI 持續整合,成為專案開發流程的一部份,或是排��執行監視已上線網站的服務品質。本次議題分享提供實際範例,說明 Geb 的使用方式,包含完成表單的資料輸入、產生報表及畫面截圖等,適合有網站自動化測試需求的開發者。

seleniumjavatesting
Selenium-ide-php-formatters

Convert Html Selenese tests to PHPUnit test
cases


Firefox Addon:
https://addons.mozilla.org/en-US/firefox/addon/selenium-ide-
php-formatters/
Export the Test Cases
The test case

<?php
class Example extends PHPUnit_Extensions_SeleniumTestCase
{
  protected function setUp()
  {
    $this->setBrowser("*iexplore");
    $this->setBrowserUrl("http://www.nickbelhomme.com/");
  }

 public function testMyTestCase()
 {
   $this->open("/");
   $this->assertTrue($this->isElementPresent("link=About"));
   $this->assertTrue($this->isElementPresent("link=Consulting & Training"));
   $this->assertTrue($this->isElementPresent("link=Blog"));
   $this->assertTrue($this->isElementPresent("link=Contact"));
   $name = $this->getEval(""nick"==="nick"");
 }
}
?>
Run the test case
php phpunit.phar testcases/testMenu.php




      Run the test suite
      php phpunit.phar testcases

Recommended for you

Selenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialSelenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver Tutorial

Slides from the Selenium Clinic Tutorial from Eurostar 2012 hosted by Simon Stewart and Alan Richardson. The tutorial was awarded "Best Tutorial" at the conference. The reference slides were excerpted from Alan Richardson's online WebDriver course hosted at Udemy. http://www.udemy.com/selenium-2-webdriver-basics-with-java/

javaseleniumwebdriver
Mobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason HugginsMobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason Huggins

See the slides from Jason Huggins' March 16 presentation at the San Francisco Selenium Meetup on using Selenium 2 for mobile testing.

functional testinghugginsandroid
Selenium Antipatterns
Selenium AntipatternsSelenium Antipatterns
Selenium Antipatterns

http://seleniumjp.connpass.com/event/24206/ 第3回日本Seleniumユーザーコミュニティ勉強会の資料です。 Seleniumのアンチパターンについてです。

selenium
Use multiple browsers
public static $browsers = array(
  array(
    'name' => 'Firefox',
    'browser' => '*firefox',
    'host' => 'hub-address',
    'port' => 4444,
    'timeout' => 30000,
  ),
  array(
    'name' => 'Internet Explorer',
    'browser' => '*iexplore',
    'host' => 'hub-address',
    'port' => 4444,
    'timeout' => 30000,
  )
);

protected function setUp()
{
  $this->setBrowserUrl('http://www.example.com/');
}
Use raw Html Selenese test

   public function testMenu()
   {
     $this->runSelenese('testMenu.html')
   }




Use raw Html Selenese testsuite

  public static $seleneseDirectory = '/path/to/files';
Taking it Parallel
With Paratest
    Parallel PHPUnit – running tests concurrently


●   Support for annotated tests
●   Inheritance
●   Tests suites
●   Test methods
●   Reflection driven

Recommended for you

How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully

Sauce Labs hosted a Selenium bootcamp webinar with guest speaker Dave Haeffner. This presentation will give you a basis for the detail given in Dave's like titled E-book and get you started with Selenium.

selenium testingseleniumautomated testing
Local development environment evolution
Local development environment evolutionLocal development environment evolution
Local development environment evolution

Setting up a local development environment is an integral part of the start of any web-project. In the report, I will share with you the challenges our team encountered during the existence of the project and the ways in which they are solved. We will go from local installation to the workstation through VirtualBox, Vagrant + Chef and Docker-compose. Join, it will be interesting! Presentation given by Sid at Wise TechTalks

devopsautomationinfrastructureascode
Introduction to Selenium grid
Introduction to Selenium gridIntroduction to Selenium grid
Introduction to Selenium grid

Selenium Grid allows running automated tests across different browsers, operating systems, and machines. It works on a master-slave architecture with a hub that distributes tests to node machines. This allows reducing test execution time by running tests in parallel on multiple machines. Selenium Grid supports cross-browser testing and running tests with different data sets on multiple browser instances simultaneously. Setting up a hub is done by running a Java command, and nodes register with the hub using a URL from the hub terminal output. Jenkins can also be configured as a hub to integrate Selenium Grid into a CI/CD pipeline.

seleniumwebdriverseleniumselenium grid
composer install
    // composer.json
{
     "require": {
          "brianium/paratest": "dev-master",
          "phpunit/dbunit": ">=1.2",
          "phpunit/php-invoker": "*",
          "phpunit/phpunit-selenium": ">=1.2",
          "phpunit/phpunit-story": "*"
     }
}
PHPUnit




Paratest + PHPUnit
References
●   X-Forwarding:
       http://en.gentoo-wiki.com/wiki/X-Forwarding
       http://www.straightrunning.com/XmingNotes/
●   Xvfb
       http://www.x.org/releases/X11R7.6/doc/man/man1/Xvfb.1.xhtml
●   Driving Selenium with PHPUnit
       http://www.phpunit.de/manual/3.8/en/selenium.html
●   Selenium Hq
       http://seleniumhq.org/docs/index.jsp
●   Composer
       http://getcomposer.org
●   Paratest
       http://brianscaturro.com/2012/11/02/parallel-phpunit.html
Troubleshooting
●   Firefox install dependencies
    http://www.thinkplexx.com/learn/howto/linux/system/installing-
    and-running-firefox-on-debian-linux-getting-missing-
    dependencies-shared-libs
●   Specify different ports in Jenkins for each RC when not using
    the grid
●   Proxy settings in Browser – use X-Forwarding to run Browser
    and change settings, use profile as a RC param when needed.

Recommended for you

OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers

The document discusses OWASP Zed Attack Proxy (ZAP), a free and open source web application security scanner. It can be used by pentesters, developers, and testers to detect vulnerabilities. ZAP passively and actively scans applications to find issues. It can be integrated into CI/CD pipelines and automated with APIs, command line tools, and programming libraries. The document provides examples of using ZAP to perform passive scanning, active scanning, and automation for testers.

owaspzapdast
Selenium grid workshop london 2016
Selenium grid workshop london 2016Selenium grid workshop london 2016
Selenium grid workshop london 2016

These were the opening slides used in the all-day Selenium Grid Workshop, given by Marcus Merrell and Manoj Kumar on November 14, 2016 at the 2016 London Selenium Conference

selenium automation automated_testing
Testing Web Apps With Scripting Language - Mark Rees, Century Software
Testing Web Apps With Scripting Language - Mark Rees, Century SoftwareTesting Web Apps With Scripting Language - Mark Rees, Century Software
Testing Web Apps With Scripting Language - Mark Rees, Century Software

Testing Web Apps With Scripting Languages Mark Rees, Century Software. 1 June 2009. Developer Track MSC Malaysia Open Source Conference 2009. http://www.osdc.my/

pythonmalaysiaosdcmy
Link to slides and other updates is
            available at
http://www.facebook.com/NickBelhommeFanPage
The End!

                   THANK YOU
          Please rate my talk
          https://joind.in/7796
contact@nickbelhomme.com

Slideshare, Twitter, IRC: NickBelhomme

http://blog.nickbelhomme.com
Flickr Photo Credits
Backgrounds by Flikr
   http://www.flickr.com/photos/flikr/146538982/
   http://www.flickr.com/photos/flikr/147274362/

More Related Content

What's hot

Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using selenium
shreyas JC
 
Automation - web testing with selenium
Automation - web testing with seleniumAutomation - web testing with selenium
Automation - web testing with selenium
Tzirla Rozental
 
Selenium Primer
Selenium PrimerSelenium Primer
Selenium Primer
gueste1e4db
 
Selenium Ide Tutorial
Selenium Ide TutorialSelenium Ide Tutorial
Selenium Ide Tutorial
metapix
 
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Yuriy Gerasimov
 
#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"
#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"
#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"
Agile Testing Alliance
 
Selenium
SeleniumSelenium
Selenium
Daksh Sharma
 
Selenium IDE Introduction, Installation and Working
Selenium IDE Introduction, Installation and WorkingSelenium IDE Introduction, Installation and Working
Selenium IDE Introduction, Installation and Working
Disha Srivastava
 
Selenium
SeleniumSelenium
Selenium
Adam Goucher
 
QSpiders - Automation using Selenium
QSpiders - Automation using SeleniumQSpiders - Automation using Selenium
QSpiders - Automation using Selenium
Qspiders - Software Testing Training Institute
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
Aneesh Rangarajan
 
Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011
hugs
 
Selenium - Introduction
Selenium - IntroductionSelenium - Introduction
Selenium - Introduction
Sachin-QA
 
Automated UI testing with Selenium
Automated UI testing with SeleniumAutomated UI testing with Selenium
Automated UI testing with Selenium
Yuriy Gerasimov
 
Selenium
SeleniumSelenium
Selenium
Sun Technlogies
 
Introduction to Selenium Web Driver
Introduction to Selenium Web DriverIntroduction to Selenium Web Driver
Introduction to Selenium Web Driver
Return on Intelligence
 
Automated Web Testing With Selenium
Automated Web Testing With SeleniumAutomated Web Testing With Selenium
Automated Web Testing With Selenium
Deepak Mittal
 
Selenium
SeleniumSelenium
Selenium
shrialinda
 
Selenium- A Software Testing Tool
Selenium- A Software Testing ToolSelenium- A Software Testing Tool
Selenium- A Software Testing Tool
Zeba Tahseen
 
Selenium introduction
Selenium introductionSelenium introduction
Selenium introduction
Pankaj Dubey
 

What's hot (20)

Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using selenium
 
Automation - web testing with selenium
Automation - web testing with seleniumAutomation - web testing with selenium
Automation - web testing with selenium
 
Selenium Primer
Selenium PrimerSelenium Primer
Selenium Primer
 
Selenium Ide Tutorial
Selenium Ide TutorialSelenium Ide Tutorial
Selenium Ide Tutorial
 
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
 
#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"
#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"
#ATAGTR2021 Presentation - "Selenium 4 Observability – a 90 Min Hands on Lab"
 
Selenium
SeleniumSelenium
Selenium
 
Selenium IDE Introduction, Installation and Working
Selenium IDE Introduction, Installation and WorkingSelenium IDE Introduction, Installation and Working
Selenium IDE Introduction, Installation and Working
 
Selenium
SeleniumSelenium
Selenium
 
QSpiders - Automation using Selenium
QSpiders - Automation using SeleniumQSpiders - Automation using Selenium
QSpiders - Automation using Selenium
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011
 
Selenium - Introduction
Selenium - IntroductionSelenium - Introduction
Selenium - Introduction
 
Automated UI testing with Selenium
Automated UI testing with SeleniumAutomated UI testing with Selenium
Automated UI testing with Selenium
 
Selenium
SeleniumSelenium
Selenium
 
Introduction to Selenium Web Driver
Introduction to Selenium Web DriverIntroduction to Selenium Web Driver
Introduction to Selenium Web Driver
 
Automated Web Testing With Selenium
Automated Web Testing With SeleniumAutomated Web Testing With Selenium
Automated Web Testing With Selenium
 
Selenium
SeleniumSelenium
Selenium
 
Selenium- A Software Testing Tool
Selenium- A Software Testing ToolSelenium- A Software Testing Tool
Selenium- A Software Testing Tool
 
Selenium introduction
Selenium introductionSelenium introduction
Selenium introduction
 

Viewers also liked

Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
Naresh Chintalcheru
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
Pavan Kumar
 
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring InsightSplunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
Splunk
 
Selenium Grid
Selenium GridSelenium Grid
Selenium Grid
nirvdrum
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Selenium
vivek_prahlad
 
Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver
Cuelogic Technologies Pvt. Ltd.
 
JAVA User Group Bern - Selenium
JAVA User Group Bern  - SeleniumJAVA User Group Bern  - Selenium
JAVA User Group Bern - Selenium
Michael Palotas
 
Automated Testing with Selenium
Automated Testing with SeleniumAutomated Testing with Selenium
Automated Testing with Selenium
Robert Kaiser
 
How to work with Selenium Grid: a quick walkthrough
How to work with Selenium Grid: a quick walkthroughHow to work with Selenium Grid: a quick walkthrough
How to work with Selenium Grid: a quick walkthrough
Noam Zakai
 
Selenium Automation
Selenium AutomationSelenium Automation
Selenium Automation
Anuradha Malalasena
 
Practical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test AutomationPractical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test Automation
Sauce Labs
 
Meet the Selenium Grid
Meet the Selenium GridMeet the Selenium Grid
Meet the Selenium Grid
Alexey Nikolaenko
 
SoftQL - Telecom Triage Services
SoftQL - Telecom Triage Services SoftQL - Telecom Triage Services
SoftQL - Telecom Triage Services
Amar Uppalapati
 
Selenium RC: Automated Testing of Modern Web Applications
Selenium RC: Automated Testing of Modern Web ApplicationsSelenium RC: Automated Testing of Modern Web Applications
Selenium RC: Automated Testing of Modern Web Applications
qooxdoo
 
Selenium Primer
Selenium PrimerSelenium Primer
Selenium Primer
Debashish Chakrabarty
 
淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)
Kyle Lin
 
Selenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialSelenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver Tutorial
Alan Richardson
 
Mobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason HugginsMobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason Huggins
Sauce Labs
 
Selenium Antipatterns
Selenium AntipatternsSelenium Antipatterns
Selenium Antipatterns
Jumpei Miyata
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully
Sauce Labs
 

Viewers also liked (20)

Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring InsightSplunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
 
Selenium Grid
Selenium GridSelenium Grid
Selenium Grid
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Selenium
 
Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver
 
JAVA User Group Bern - Selenium
JAVA User Group Bern  - SeleniumJAVA User Group Bern  - Selenium
JAVA User Group Bern - Selenium
 
Automated Testing with Selenium
Automated Testing with SeleniumAutomated Testing with Selenium
Automated Testing with Selenium
 
How to work with Selenium Grid: a quick walkthrough
How to work with Selenium Grid: a quick walkthroughHow to work with Selenium Grid: a quick walkthrough
How to work with Selenium Grid: a quick walkthrough
 
Selenium Automation
Selenium AutomationSelenium Automation
Selenium Automation
 
Practical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test AutomationPractical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test Automation
 
Meet the Selenium Grid
Meet the Selenium GridMeet the Selenium Grid
Meet the Selenium Grid
 
SoftQL - Telecom Triage Services
SoftQL - Telecom Triage Services SoftQL - Telecom Triage Services
SoftQL - Telecom Triage Services
 
Selenium RC: Automated Testing of Modern Web Applications
Selenium RC: Automated Testing of Modern Web ApplicationsSelenium RC: Automated Testing of Modern Web Applications
Selenium RC: Automated Testing of Modern Web Applications
 
Selenium Primer
Selenium PrimerSelenium Primer
Selenium Primer
 
淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)
 
Selenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialSelenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver Tutorial
 
Mobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason HugginsMobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason Huggins
 
Selenium Antipatterns
Selenium AntipatternsSelenium Antipatterns
Selenium Antipatterns
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully
 

Similar to Mastering selenium for automated acceptance tests

Local development environment evolution
Local development environment evolutionLocal development environment evolution
Local development environment evolution
Wise Engineering
 
Introduction to Selenium grid
Introduction to Selenium gridIntroduction to Selenium grid
Introduction to Selenium grid
Knoldus Inc.
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
Javan Rasokat
 
Selenium grid workshop london 2016
Selenium grid workshop london 2016Selenium grid workshop london 2016
Selenium grid workshop london 2016
Marcus Merrell
 
Testing Web Apps With Scripting Language - Mark Rees, Century Software
Testing Web Apps With Scripting Language - Mark Rees, Century SoftwareTesting Web Apps With Scripting Language - Mark Rees, Century Software
Testing Web Apps With Scripting Language - Mark Rees, Century Software
Linuxmalaysia Malaysia
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
orkaplan
 
How to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environmentHow to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environment
Michelantonio Trizio
 
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Bastian Feder
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
Akshaya Mahapatra
 
Automated testing with Drupal
Automated testing with DrupalAutomated testing with Drupal
Automated testing with Drupal
Promet Source
 
Automated Web Testing using JavaScript
Automated Web Testing using JavaScriptAutomated Web Testing using JavaScript
Automated Web Testing using JavaScript
Simon Guest
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer Toolbox
Pablo Godel
 
Selenium
SeleniumSelenium
Selenium
conect2krish
 
Selenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI TestingSelenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI Testing
mikereedell
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
Kris Buytaert
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
vstorm83
 
Good practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsGood practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium tests
Abhijeet Vaikar
 
Selenium Introduction
Selenium IntroductionSelenium Introduction
Selenium Introduction
Mayur Khairnar
 
Browser-Based testing using Selenium
Browser-Based testing using SeleniumBrowser-Based testing using Selenium
Browser-Based testing using Selenium
ret0
 
Selenium Automation Using Ruby
Selenium Automation Using RubySelenium Automation Using Ruby
Selenium Automation Using Ruby
Kumari Warsha Goel
 

Similar to Mastering selenium for automated acceptance tests (20)

Local development environment evolution
Local development environment evolutionLocal development environment evolution
Local development environment evolution
 
Introduction to Selenium grid
Introduction to Selenium gridIntroduction to Selenium grid
Introduction to Selenium grid
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
 
Selenium grid workshop london 2016
Selenium grid workshop london 2016Selenium grid workshop london 2016
Selenium grid workshop london 2016
 
Testing Web Apps With Scripting Language - Mark Rees, Century Software
Testing Web Apps With Scripting Language - Mark Rees, Century SoftwareTesting Web Apps With Scripting Language - Mark Rees, Century Software
Testing Web Apps With Scripting Language - Mark Rees, Century Software
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
 
How to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environmentHow to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environment
 
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
 
Automated testing with Drupal
Automated testing with DrupalAutomated testing with Drupal
Automated testing with Drupal
 
Automated Web Testing using JavaScript
Automated Web Testing using JavaScriptAutomated Web Testing using JavaScript
Automated Web Testing using JavaScript
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer Toolbox
 
Selenium
SeleniumSelenium
Selenium
 
Selenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI TestingSelenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI Testing
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 
Good practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsGood practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium tests
 
Selenium Introduction
Selenium IntroductionSelenium Introduction
Selenium Introduction
 
Browser-Based testing using Selenium
Browser-Based testing using SeleniumBrowser-Based testing using Selenium
Browser-Based testing using Selenium
 
Selenium Automation Using Ruby
Selenium Automation Using RubySelenium Automation Using Ruby
Selenium Automation Using Ruby
 

More from Nick Belhomme

Vagrant move over, here is Docker
Vagrant move over, here is DockerVagrant move over, here is Docker
Vagrant move over, here is Docker
Nick Belhomme
 
PHP traits, treat or threat?
PHP traits, treat or threat?PHP traits, treat or threat?
PHP traits, treat or threat?
Nick Belhomme
 
PHP Quality Assurance Workshop PHPBenelux
PHP Quality Assurance Workshop PHPBeneluxPHP Quality Assurance Workshop PHPBenelux
PHP Quality Assurance Workshop PHPBenelux
Nick Belhomme
 
Mastering Namespaces in PHP
Mastering Namespaces in PHPMastering Namespaces in PHP
Mastering Namespaces in PHP
Nick Belhomme
 
Cursus phpunit
Cursus phpunitCursus phpunit
Cursus phpunit
Nick Belhomme
 
Zend Framework Form: Mastering Decorators
Zend Framework Form: Mastering DecoratorsZend Framework Form: Mastering Decorators
Zend Framework Form: Mastering Decorators
Nick Belhomme
 
Zend Framework 1.8 workshop
Zend Framework 1.8 workshopZend Framework 1.8 workshop
Zend Framework 1.8 workshop
Nick Belhomme
 

More from Nick Belhomme (7)

Vagrant move over, here is Docker
Vagrant move over, here is DockerVagrant move over, here is Docker
Vagrant move over, here is Docker
 
PHP traits, treat or threat?
PHP traits, treat or threat?PHP traits, treat or threat?
PHP traits, treat or threat?
 
PHP Quality Assurance Workshop PHPBenelux
PHP Quality Assurance Workshop PHPBeneluxPHP Quality Assurance Workshop PHPBenelux
PHP Quality Assurance Workshop PHPBenelux
 
Mastering Namespaces in PHP
Mastering Namespaces in PHPMastering Namespaces in PHP
Mastering Namespaces in PHP
 
Cursus phpunit
Cursus phpunitCursus phpunit
Cursus phpunit
 
Zend Framework Form: Mastering Decorators
Zend Framework Form: Mastering DecoratorsZend Framework Form: Mastering Decorators
Zend Framework Form: Mastering Decorators
 
Zend Framework 1.8 workshop
Zend Framework 1.8 workshopZend Framework 1.8 workshop
Zend Framework 1.8 workshop
 

Recently uploaded

Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 

Recently uploaded (20)

Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 

Mastering selenium for automated acceptance tests

  • 1. Nick Belhomme January 26th, PHPBenelux Conference 2013, Belgium
  • 2. Nick Belhomme International Conference Speaker Contributor to various Open Source Projects Building Constructor Software Architect / Project Lead Loving Husband Freelance PHP Consultant PHP QA trainer Your host for the upcoming hour
  • 3. Selenium 34 Claims, Benefits: Prevents cancer Aging
  • 4. Selenium – the web browser automation tool set
  • 5. Acceptance Tests ● System tests ● Black box ● Functional testing
  • 6. Browser Compatibility Tests ● Different Browsers ● Different Operating Systems
  • 7. Regression Tests ● Internal Changes ● Partner Changes
  • 8. Tools ● Humans ● Capture and replay ● Scripts and bots ● Selenium
  • 9. Manual Testing ● Time-intensive ● Nerve-stretching ● Human error / understanding of the flow ● Costly
  • 10. Capture and Replay ● Captures mouse movements and inputs ● Replays later ● Screenresolution, operating systems, window sizes, makes this very unmaintainable
  • 11. Scripts and Bots ● Bot makes screen-shots, analyzes them for visual blocks ● Calculates visual blocks x-y positions and generates mouse clicks on that location and user input. ● Generating a test is time-intensive ● Error prone on design changes.
  • 12. Selenium ● Records and playback browser tests ● Asserts on DOM ● Javascript is being executed and testable ● Css selectors or xpath position sensitive ● Hard to detect layout errors
  • 13. Learning Curve ● Jump in quickly ● Steep – If you want to do it right ● Mastering it – creating readable, understandable, maintainable and robust tests - takes time and effort.
  • 14. Worth it Ask a Salary Increase and own a second modest vacation property
  • 15. And as an added bonus ● Better code architecture ● More functional code ● High browser compatibility ● No more regressions ● Neat cool stuff to brag about at your local pub!!!
  • 16. Setting it up client side
  • 17. Selenium IDE Firefox Plugin: http://release.seleniumhq.org/selenium-ide/1.10.0/selenium-ide-1.10.0.xpi ● Easy record and playback ● Intelligent field selection will use IDs, names, or XPath as needed ● Autocomplete for all common Selenium commands ● Walk through tests ● Debug and set breakpoints ● Save tests as HTML, PHPUnit, or any other format ● Support for Selenium user-extensions.js file ● Option to automatically assert the title of every page ● Easy customization through plugins
  • 20. X-forwarding run software on remote machine and display the GUI locally ● Linux and Mac OS X support X Forwarding with no extra software ssh -X ● Windows needs extra software Xming
  • 21. Xming (X-forwarding for windows) http://sourceforge.net/projects/xming/files/latest/download Configure Xming Windows Start => Xming => XLaunch Display settings dialog box: Multiple windows Display number as 0 Keep clicking next then Finish.
  • 22. Putty (windows) ● Connection => SSH => X11 ● Enable X11 forwarding ● Set X display location as :0.0
  • 23. Setting it up server side (headless)
  • 24. Firefox ● [64 bit] wget http://download-origin.cdn.mozilla.net/pub/mozilla.org/firefox/relea ● [32 bit] wget http://download-origin.cdn.mozilla.net/pub/mozilla.org/firefox/relea ● tar -jxvf firefox-18.0.tar.bz2 -C /opt ● ln -s /opt/firefox/firefox /usr/bin/firefox ● Firefox (No X-Display needed thanks to forwarding)
  • 25. Completely headless (no X-forwarding) ● Install Xvfb aptitude install Xvfb ● Update to latest java version aptitude install sun-java6-jre ● Download the latest Selenium Server Jar package wget http://selenium.googlecode.com/files/selenium- server-standalone-2.28.0.jar
  • 26. Test driving Selenium RC (X-forwarding) To test-drive it is always easier to first use X-forwarding: java -jar selenium-server-standalone-2.28.0.jar -htmlSuite *firefox "http://www.domaintocheck.com" “/path/to/selenium/testSuite.html” “/path/where/selenium/should/store/results.html” testSuite.html and related files are the files saved by Selenium IDE
  • 27. Test driving Selenium RC (X Virtual Frame Buffer) ● Open a connection and run Xvfb Xvfb :99 ● Open another connection and run selenium export DISPLAY=:99 & java -jar selenium-server- standalone-2.28.0.jar -htmlSuite *firefox "http://www.domaintocheck.com" “/path/to/selenium/testSuite.html” “/path/where/selenium/should/store/results.html”
  • 28. Integrate into Make certain your Jenkins server is started with Xvfb run on :99 ● Check with: ps -ef | grep Xvfb ● If not running then issue a Xvfb :99 CTRL + Z ● Log into Jenkins: manage Jenkins -> Manage Plugins install “Hudson Seleniumhq plugin”
  • 29. Setup a Job ● Create a new freestyle job
  • 32. Problem ● remote control is slow at driving the browser. ● limited number of concurrent tests on the same remote control before seriously impacting its stability. ● Multiple Selenium Remote Controls In Jenkins to work around the limitation on the number of parallel tests.
  • 33. The Grid ● Run tests against multiple browsers ● multiple versions of browser ● browsers running on different operating systems ● To reduce the time it takes for the test suite to complete a test pass.
  • 35. The Hub ● 1 instance ● Allocating a Selenium Remote Control to a specific test (transparently) ● Limiting the number of concurrent test runs on each Remote Control ● Shielding the tests from the actual grid infrastructure
  • 36. A Node ● Remote Control ● Multiple instances (across machines preferably) ● Multiple Browsers ● Can be configured using a json file
  • 38. Start the hub java -jar selenium-server-standalone-2.28.0.jar -role hub ● Start nodes on separate machines java -jar selenium-server-standalone-2.28.0.jar -role node -hub http://hub-address:4444/grid/register
  • 40. Optimizing a Node with js ● java -jar selenium-server-standalone-2.28.0.jar -role node -nodeConfig nodeConfig.js //nodeConfig.js { "class":"org.openqa.grid.common.RegistrationRequest", "capabilities":[ { "platform":"VISTA", "seleniumProtocol":"Selenium", "browserName":"*firefox", "maxInstances":5 }, { "platform":"VISTA", "seleniumProtocol":"Selenium", "browserName":"*iexplore", "maxInstances":1 } ],
  • 41. "configuration":{ "port":5555, "register":true, "host":"node-address", "proxy":"org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "maxSession":5, "role":"node", "hubHost":"hub-address", "registerCycle":5000, "hub":"http://hub-address:4444/grid/register", "hubPort":4444, "url":"http://node-address:5555", "remoteHost":"http://node-address:5555" } }
  • 43. Run the suite ● No Native HTML Selenese tests support ● Web driver needed ● PHPUnit
  • 44. + Selenium Web Driver wget http://pear.phpunit.de/get/phpunit.phar chmod +x phpunit.phar
  • 45. Selenium-ide-php-formatters Convert Html Selenese tests to PHPUnit test cases Firefox Addon: https://addons.mozilla.org/en-US/firefox/addon/selenium-ide- php-formatters/
  • 47. The test case <?php class Example extends PHPUnit_Extensions_SeleniumTestCase { protected function setUp() { $this->setBrowser("*iexplore"); $this->setBrowserUrl("http://www.nickbelhomme.com/"); } public function testMyTestCase() { $this->open("/"); $this->assertTrue($this->isElementPresent("link=About")); $this->assertTrue($this->isElementPresent("link=Consulting & Training")); $this->assertTrue($this->isElementPresent("link=Blog")); $this->assertTrue($this->isElementPresent("link=Contact")); $name = $this->getEval(""nick"==="nick""); } } ?>
  • 48. Run the test case php phpunit.phar testcases/testMenu.php Run the test suite php phpunit.phar testcases
  • 49. Use multiple browsers public static $browsers = array( array( 'name' => 'Firefox', 'browser' => '*firefox', 'host' => 'hub-address', 'port' => 4444, 'timeout' => 30000, ), array( 'name' => 'Internet Explorer', 'browser' => '*iexplore', 'host' => 'hub-address', 'port' => 4444, 'timeout' => 30000, ) ); protected function setUp() { $this->setBrowserUrl('http://www.example.com/'); }
  • 50. Use raw Html Selenese test public function testMenu() { $this->runSelenese('testMenu.html') } Use raw Html Selenese testsuite public static $seleneseDirectory = '/path/to/files';
  • 52. With Paratest Parallel PHPUnit – running tests concurrently ● Support for annotated tests ● Inheritance ● Tests suites ● Test methods ● Reflection driven
  • 53. composer install // composer.json { "require": { "brianium/paratest": "dev-master", "phpunit/dbunit": ">=1.2", "phpunit/php-invoker": "*", "phpunit/phpunit-selenium": ">=1.2", "phpunit/phpunit-story": "*" } }
  • 55. References ● X-Forwarding: http://en.gentoo-wiki.com/wiki/X-Forwarding http://www.straightrunning.com/XmingNotes/ ● Xvfb http://www.x.org/releases/X11R7.6/doc/man/man1/Xvfb.1.xhtml ● Driving Selenium with PHPUnit http://www.phpunit.de/manual/3.8/en/selenium.html ● Selenium Hq http://seleniumhq.org/docs/index.jsp ● Composer http://getcomposer.org ● Paratest http://brianscaturro.com/2012/11/02/parallel-phpunit.html
  • 56. Troubleshooting ● Firefox install dependencies http://www.thinkplexx.com/learn/howto/linux/system/installing- and-running-firefox-on-debian-linux-getting-missing- dependencies-shared-libs ● Specify different ports in Jenkins for each RC when not using the grid ● Proxy settings in Browser – use X-Forwarding to run Browser and change settings, use profile as a RC param when needed.
  • 57. Link to slides and other updates is available at http://www.facebook.com/NickBelhommeFanPage
  • 58. The End! THANK YOU Please rate my talk https://joind.in/7796 contact@nickbelhomme.com Slideshare, Twitter, IRC: NickBelhomme http://blog.nickbelhomme.com
  • 59. Flickr Photo Credits Backgrounds by Flikr http://www.flickr.com/photos/flikr/146538982/ http://www.flickr.com/photos/flikr/147274362/

Editor's Notes

  1. System: tests request, router, controller, view, response Black box: you do not have to be aware of the code behind the system. And thus you do not write your tests accordingly Functional: tests complete gui and behavior
  2. System: tests request, router, controller, view, response Black box: you do not have to be aware of the code behind the system. And thus you do not write your tests accordingly Functional: tests complete gui and behavior
  3. System: tests request, router, controller, view, response Black box: you do not have to be aware of the code behind the system. And thus you do not write your tests accordingly Functional: tests complete gui and behavior