Slide 1

Slide 1 text

We need a better way to test Kevin Lamping @klamping

Slide 2

Slide 2 text

–Me IRL “I fixed the css. It broke the website.”

Slide 3

Slide 3 text

–My PM “Didn’t you test it?”

Slide 4

Slide 4 text

–Me “I tested most of it…”

Slide 5

Slide 5 text

Why don’t we test? • We do, we just don’t keep testing • We do, just not in *ALL THE BROWSERS* • We do, just not with every variation • We do, we’re just bad at it A few reasons: 1 - We get fatigued. Small things change between when we start our dev/testing and when we finish (code merges from other teams, software updates) 2 - Not too hard to explain. there are an insane amount of browsers/devices and combinations thereof 3 - Data gets *really* complex. Users come in from a multitude of flows… 4 - We don’t catch all the changes. Change blindness. Story of login page issue with padding

Slide 6

Slide 6 text

How can we fix this? • Make testing easy enough to include in daily workflow • Run tests in multiple browsers via Selenium • Use code to store user scenarios • Use computers to remember details Some ideas: 1 - We get fatigued. Small things change between when we start our dev/testing and when we finish (code merges from other teams, software updates) 2 - Not too hard to explain. there are an insane amount of browsers/devices and combinations thereof 3 - Data gets *really* complex. Users come in from a multitude of flows… 4 - We don’t catch all the changes. Change blindness. Story of login page issue with padding

Slide 7

Slide 7 text

The MAGICAL solution? MAGICAL

Slide 8

Slide 8 text

Test Automation The wonderful, magical, solve-everything and save the world solution* *almost as cool as nodejs robots

Slide 9

Slide 9 text

Functional/UI Testing JS Unit Testing There are lots of different types of testing. We’re talking about UI/Browser/Selenium/Functional testing. Basically, the ability to run user actions on a site via a script.

Slide 10

Slide 10 text

Functional/UI Testing JS Unit Testing The stuff you pretend is healthy Unit testing tests specific code

Slide 11

Slide 11 text

Functional/UI Testing JS Unit Testing The stuff you pretend is healthy The reason you’re here UI testing checks behavior/the interface/the actual site

Slide 12

Slide 12 text

Selenium • Uses real browsers • Programmatic control of them • Free & open-source De facto standard for functional testing in the industry. Normally requires learning Ruby or Java or Python. JavaScript library is really frustrating to use.

Slide 13

Slide 13 text

WebdriverIO • Node.js based • Simplifies commands • Supportive community • Integrations with popular tools

Slide 14

Slide 14 text

–Me about an hour ago “It’s like jQuery, but for testing”

Slide 15

Slide 15 text

Selenium Support Streamlined Commands Built-in 3rd party integrations BackstopJS WebdriverIO Selenium- Webdriver NightWatch.js

Slide 16

Slide 16 text

Extensive Documentation Custom services & reporters Online Course BackstopJS WebdriverIO Selenium- Webdriver NightWatch.js Nightwatch looks like a really healthy alternative

Slide 17

Slide 17 text

Testing a Login https://testyourlog.in

Slide 18

Slide 18 text

frontendpdx for 25% off this week learn.webdriver.io