Transcript
Page 1: Cross browser Testing JavaScript

Cross Browser testing JavaScript

Alan ParkinsonCEO, Hindsight Software Ltd

@alan_parkinson

Page 2: Cross browser Testing JavaScript
Page 3: Cross browser Testing JavaScript

You don’t need to run your Selenium Test suite with every browser*

The Truth

Page 4: Cross browser Testing JavaScript

• No visual testing

• Low JavaScript code coverage

• Costly to improve coverage

Rendering Compatibility

JavaScript/DOM Compatibility

What do we achieve?

Page 5: Cross browser Testing JavaScript

• JavaScript and DOM compatibility• Good code coverage• Reusing a development artifact

Run all JavaScript unit tests cross browser

Simple Answer

Page 6: Cross browser Testing JavaScript

• 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

Page 7: Cross browser Testing JavaScript

Do we meet our compatibility objective?

Code Coverage has a use

Page 8: Cross browser Testing JavaScript

• 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

Page 9: Cross browser Testing JavaScript

JAVASCRIPT TEST RUNNERSReusing your Selenium infrastructure

Page 10: Cross browser Testing JavaScript

• Testing Framework Agnostic• Continuous Integration• Code coverage with Instanbul

• Launch Browsers

• Manually connect browsers

Spectacular Test Runner for JavaScript

Real Browsers

Karma

Page 11: Cross browser Testing JavaScript

• Connects Remote WebDriver Instances• Selenium Grid 2• Supports Desired Capabilities

Reusing your Selenium Infrastructure

Karma WebDriver Launcher

Page 12: Cross browser Testing JavaScript

Karma in action

$ npm install -g karma

$ npm install -g karma-webdriver-launcher

Page 13: Cross browser Testing JavaScript

Continuous Integration

Override karma.conf.js from the command line

singleRun: truereporters: [‘junit’]

Page 14: Cross browser Testing JavaScript

• 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

Page 15: Cross browser Testing JavaScript

http://karma-runner.github.io/

https://github.com/hindsightsoftware/karma-webdriver-example

Thank youAlan Parkinson

@alan_parkinson


Recommended