Breakpoint 2021 is a 2-day virtual summit on software quality. We're bringing speakers—dev, QA and open source experts—to talk about how the best engineering teams ship quality software at scale.
Joscha Feth is the Tech Lead of the Developer Platform group at Canva, tasked with engineering productivity for their 500+ engineers. After having waited for a while to try visual regression testing using Percy, Joscha finally got the opportunity to do so when he joined Canva. Since then, Percy has been playing a vital part in frontend engineering at Canva.
Can you tell us about your role at Canva?
I am the Tech Lead for a group looking after internal developer tooling at Canva. We maintain and evolve pretty much most things from the point where you write your first line of code, up to when that code is deployed to production.
Can you give us a sneak-peek into your session for Breakpoint 2021?
You'll hear why your company/project might want to use Percy, how it can help you scale and prevent regressions, plus some insights into how we scaled it to millions of snapshots per month at Canva.
Is there a favorite project/side project in testing/tech you’ve worked on recently?
Internally, my most favorite tech currently is a bot that detects broken things entering our main branch and automatically reverts them. It’s very satisfying to see it work and it saves us endless hours of manual work.
Externally, I am currently quite interested in Spotify's Backstage service catalog (open source) and a super small but useful service called BuildPulse (SaaS), which can detect test flakiness.
What are you learning right now? What made you interested in this?
I recently decided to train my engineering skills outside CS—so I learned to weld, did a fair bit of woodwork, rebuilt a work shed (wish I could have said bike shed really, with this audience, haha) with fibro, etc. It’s very satisfying to have this connection with the real world and do something with my hands, other than hitting keys on a keyboard.
What are the reasons that make you believe that automated UI testing is the way to go?
I am a strong believer that we should all apply our skills in the best possible and challenging way. Humans are great at matching patterns. But having a human look at hundreds of UI components in multiple browsers each time we make a change to them is really not a great use of their skill. It also doesn't scale very well once you hit a certain pace of changes and amount of UI components.
Currently, both our code change frequency and the amount of UI we have wouldn't allow a human to even look at a fraction of the things that can possibly have regressions. And the more repetitive a task is (and looking at static images trying to spot differences is very repetitive), the more likely it is that a human will make mistakes.
So, automated UI testing really helps all of us—it will catch regressions with a high probability and unrivaled speed, while we dedicate our skill to more important, unsolved problems.