Cross browser Testing JavaScript

  • Published on

  • View

  • Download

Embed Size (px)


One mistake many people make is running their selenium test suites with every browser combination... you don't need to! Rendering problems are probably the biggest cross browser compatibility issue, and you can't actually test for these with Functional Tests. So by running Selenium tests across many browsers you are really testing JavaScript and DOM compatibility. Running our Selenium tests across many browsers was our JavaScript compatibility strategy, but it proved inefficient as we ended up with bugs in Internet Explorer; how embarrassing!


  • Cross Browser testing JavaScript Alan Parkinson CEO, Hindsight Software Ltd @alan_parkinson
  • You dont need to run your Selenium Test suite with every browser* The Truth
  • No visual testing Low JavaScript code coverage Costly to improve coverage Rendering Compatibility JavaScript/DOM Compatibility What do we achieve?
  • JavaScript and DOM compatibility Good code coverage Reusing a development artifact Run all JavaScript unit tests cross browser Simple Answer
  • Average Test: 8 Seconds Test Suite: 5 minutes Average Test: 0.1 seconds Test suite: 11 seconds Functional Tests JavaScript Unit Tests Looking at the numbers
  • Do we meet our compatibility objective? Code Coverage has a use
  • Too many JavaScript files Order of loading files Not everything will be picked up by Unit Tests *The qualifier Only run critical functional tests cross- browser
  • JAVASCRIPT TEST RUNNERS Reusing your Selenium infrastructure
  • Testing Framework Agnostic Continuous Integration Code coverage with Instanbul Launch Browsers Manually connect browsers Spectacular Test Runner for JavaScript Real Browsers Karma
  • Connects Remote WebDriver Instances Selenium Grid 2 Supports Desired Capabilities Reusing your Selenium Infrastructure Karma WebDriver Launcher
  • Karma in action $ npm install -g karma $ npm install -g karma-webdriver-launcher
  • Continuous Integration Override karma.conf.js from the command line singleRun: true reporters: [junit]
  • Code Coverage Feedback time Meeting our objective - Compatibility Karma Runner Use your existing WebDriver infrastructure Use code coverage to validate the majority of your code is compatibility tested. Functional tests have poor performance: Cross-browser unit test JavaScript Summary
  • webdriver-example Thank you Alan Parkinson @alan_parkinson