Cypress.io

177: Test Automation Using Cypress.io with Brian Mann & Gleb Bahmutov

Test Automation Using Cypress.io with Brian Mann & Gleb Bahmutov


Are you or your developers struggling with test automation? Is Selenium not working for you? In this episode, we'll be test talking with the founder and VP of engineering at Cypress.io. Cypress.io is a developer-focused tool that helps other developers write tests for the web. It was designed to avoid some of the bad practices Brian has seen in the past when writing test automation and was developed with the philosophy of writing good tests in mind.

About Cypress.io


Brian Mann is the Founder and CEO at Cypress.io


Gleb Bahmutov is JavaScript ninja, image processing expert and software quality fanatic. During the day Gleb is making the web a better place as VP of Engineering at Cypress.io. At night he is fighting software bugs and blogs about it.

What is Cypress.io


Web development has advanced in leaps and bounds in the last decade, but front-end testing has not. Testing sucks. It’s the part that every developer dreads. It’s often harder to write a passing test than an actual feature. Devs and QA want to spend their time building cool things, and they need tools that match how we build modern applications. Therefore Brian built a revolutionary new testing tool from the ground up. They wanted to create a product that they loved and actually use themselves.

Quotes & Insights from this Test Talk

  • When I was first starting Cypress one of the first things I did was I surveyed a bunch of developers and one of the questions that we asked them was What do you really want to see solved. What are you really having struggles with? And the response is there is an overwhelming amount of consensus about what the problems are. And we have essentially built Cypress to target those problems and specifically solve them.
  • Cypress.io is a developer focused tool that helps other developers write tests for the web. I mean it's really pretty simple. For me, I have been working on this project for approximately four years. I've been a developer now for about 10 years have hired a lot of developers to have onboard of them have written probably over 10000 test myself. And in building large-scale Web applications I realized that the existing tools are sort of the architecture behind them left a lot to be desired. Over and over again I found that developers really struggled with writing automated tests that they were unreliable that they were too slow to do as TDD. And it was sort of the worst part of a developers day.
  • So we utilize a lot of the same underlying automation API that the browsers expose the same way that web driver does just without web driver. We're just basically bypassing that thing and talking directly to the browsers the same way they each driver does for each browser vendor. So it ends up doing the same thing but we only do those on a limited basis for certain types of commands.
  • Cypress comes fully baked fully packaged as a desktop application that's that under the hood using electron and it's using node. So I mean there are very specific tradeoffs that we make by using Cypress. And I would say it's not like web driver in the sense that it's not general automation tool it is a has a laser focus on testing and it's not just web scraping or anything else. This is all about testing your application.
  • We're straddling the worlds of being a commercial service but yet being you know champions for the open source community. So what we call the test runner is everything that you would do on your local computer so installing Cypress, writing your tests running your tests, running them heedlessly, running them headed, changing the reporter, writing a plugin like all of those things that ultimately yields you a pass/fail is done in the test runner and the entirety of the test runner is free and open source MIT license.
  • One of the benefits that we have being an actual company is that this is what our whole team does all day every day. They're all full-time employees. And that gives us the ability to really invest in the success of our users because that's what we want. And so documentation is one of those core competencies that I wanted Cypress to be the very very best at. So we have docs obviously docs.cypress.io and what we wanted to do above anything else was not just document you know the sort of the static call this function with this method. This takes an array an object etc. etc. but help educate the developer as to why they want to do something.

Connect with Cypress.io

May I Ask You For a Favor?

Thanks again for listening to the show. If it has helped you in any way, shape or form, please share it using the social media buttons you see on the page.

Additionally, reviews for the podcast on iTunes are extremely helpful and greatly appreciated! They do matter in the rankings of the show and I read each and every one of them.

SponsoredBySauceLabs

Test Talks is sponsored by the fantastic folks at Sauce Labs. Try it for free today!