Slide 1

Slide 1 text

Testing, the way it should be. Brian Mann @be_mann

Slide 2

Slide 2 text

Developing since 2008 Testing for 4 years Written 10,000+ tests

Slide 3

Slide 3 text

Backbone Rails

Slide 4

Slide 4 text

Unit Tests Integration Tests

Slide 5

Slide 5 text

Unit Tests Integration Tests

Slide 6

Slide 6 text

Testing is just too hard

Slide 7

Slide 7 text

To: Developers “What are the biggest testing challenges you want solved?” From: Me

Slide 8

Slide 8 text

Having sane configuration It must be easy to use Easy to write Easy to read Easy to maintain Visibility into why something failed Animation testing Wasted time spent debugging false negatives ..slow to run and often … fragile Speed of test execution …errors using Selenium are useless …more insight into failing tests Running fast and reliably …having to go through a pain of setup Frictionless test setup …taking a long time to develop and difficult to maintain Testing responsive designs See what broke visually Can be quickly debugged Understand why test failed Being easy to setup Making it easy Making it "fun" to write tests Cross-Browser testing Tooling that is easy to use Support for async testing Flake Tooling that is fast Tooling that actually works Intermittent test failures Speed, flakiness Time spent debugging false negatives Testing across browsers is painful A solution that is friendly to frontend Devs Less brittle to changes Legible syntax Faster test- development feedback loop Simpler to write No endless setup hassle Testing browser JS-heavy apps Asynchronous interaction More insight into failing tests …very clunky … and cryptic Deals with async in a non-flakey way Testing frameworks aren't great Better information for new testers …complexity and difficulty Fixing failing tests and regressions Making testing more enjoyable Debugging failing tests have left me frustrated Abandonment of automated tests …takes a bit of time to setup Step through the error and inspect what is happening Elegantly dealing with delays Config …causes them to abandon testing… Learning curve Usable cross browser testing Test my apps on multiple browsers Managing a bunch of fiddly testing tools …hard time getting started Simplify integration testing Highlight and help understand what should be tested Testing without selenium CSS rendering testing Cross-browser compatibility Automatically retest the code you’re working on Reducing the pain Encourage Devs to actually write more tests …tests have left me frustrated …intimidates users Slow iterations on test code Visually step through the test runs Takes lots of time to get it right Sane test-running environment Less hassle to set up

Slide 9

Slide 9 text

Setup Having sane configuration …having to go through a pain of setup Frictionless test setup Being easy to setup No endless setup hassle Less hassle to set up It must be easy to use Easy to write Running fast and reliably Testing responsive designs See what broke visually Support for async testing Simpler to write Writing Management Easy to maintain Wasted time spent debugging false negatives Understand why test failed Flake Intermittent test failures Less brittle to changes More insight into failing tests

Slide 10

Slide 10 text

Chapter 1: Setup

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Chapter 2: Writing

Slide 13

Slide 13 text

• Murky • Debugging Chapter 2: Writing

Slide 14

Slide 14 text

• Murky • Debugging Chapter 2: Writing

Slide 15

Slide 15 text

• Murky • Debugging • Speed • Control Chapter 2: Writing

Slide 16

Slide 16 text

Chapter 3: Management

Slide 17

Slide 17 text

Chapter 3: Management • Flake / Brittleness • Driver Bugs • Failure Insight

Slide 18

Slide 18 text

Chapter 3: Management • Flake / Brittleness • Driver Bugs • Failure Insight

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Why?

Slide 22

Slide 22 text

Why? Selenium

Slide 23

Slide 23 text

No content