Testing the way it should be

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

Transcript of Testing the way it should be

Page 1: Testing the way it should be

Testing,the way it should be.

Brian Mann!@be_mann"

Page 2: Testing the way it should be

What is Cypress?

Page 3: Testing the way it should be
Page 4: Testing the way it should be

Why another testing tool?

Page 5: Testing the way it should be

Developing since 2008

Testing for 5 years

Written 10,000+ tests

Page 6: Testing the way it should be

Testing is just too hard

Page 7: Testing the way it should be
Page 8: Testing the way it should be

To: Developers

“What are the biggest testing challenges you want solved?”

From: Me

Page 9: Testing the way it should be

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 usersSlow 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

Page 10: Testing the way it should be

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

Page 11: Testing the way it should be

Selenium

Page 12: Testing the way it should be

Selenium

Page 13: Testing the way it should be

• Evolution

• Async Code

• Architecture

• Control

• Speed

Page 14: Testing the way it should be
Page 15: Testing the way it should be
Page 16: Testing the way it should be

I hate testing :-(

Page 17: Testing the way it should be

Part 1: Setup

Page 18: Testing the way it should be

Part 2: Writing

Page 19: Testing the way it should be
Page 20: Testing the way it should be
Page 21: Testing the way it should be
Page 22: Testing the way it should be
Page 23: Testing the way it should be
Page 24: Testing the way it should be
Page 25: Testing the way it should be
Page 26: Testing the way it should be
Page 27: Testing the way it should be
Page 28: Testing the way it should be
Page 29: Testing the way it should be
Page 30: Testing the way it should be
Page 31: Testing the way it should be
Page 32: Testing the way it should be
Page 33: Testing the way it should be
Page 34: Testing the way it should be
Page 35: Testing the way it should be
Page 36: Testing the way it should be
Page 37: Testing the way it should be
Page 38: Testing the way it should be
Page 39: Testing the way it should be
Page 40: Testing the way it should be
Page 41: Testing the way it should be
Page 42: Testing the way it should be
Page 43: Testing the way it should be
Page 44: Testing the way it should be
Page 45: Testing the way it should be

Part 3: Management

Page 46: Testing the way it should be

!

Page 47: Testing the way it should be

!

Page 48: Testing the way it should be

Desktop App

#Cloud Platform

$

Page 49: Testing the way it should be
Page 50: Testing the way it should be
Page 51: Testing the way it should be
Page 52: Testing the way it should be
Page 53: Testing the way it should be

Goals%

Page 54: Testing the way it should be

• Open Source

• Champions

• Documentation

• Happiness

Page 55: Testing the way it should be

Roadmap&

Page 56: Testing the way it should be

'

(

docs.cypress.io

www.cypress.io