Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Testing the way it should be

Brian Mann
October 27, 2016

Testing the way it should be

I gave this talk October 27, 2016 at ReactiveConf in Bratislava, Slovakia. Video of presentation can be found here: https://youtu.be/N9RbcP4iY90?t=48m18s

Testing is the essential bedrock of software, and we can all agree it's a must ­have. There are many testing tools for the front end, but most (if not all) suffer from some crippling problems. We’ll explore these problems and the solutions Cypress.io offers to take the pain out of testing.

To learn more about Cypress.io visit https://www.cypress.io/

Brian Mann

October 27, 2016
Tweet

More Decks by Brian Mann

Other Decks in Programming

Transcript

  1. 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
  2. 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