Fast-Tracking Quality for Hundreds of React Applications With Automated Testing Layers

Bookmark
Rate this content

A case study explores the Streaming company's journey of building automated testing layers within a complex, multidimensional React monorepo and achieving quality contribution feedback within minutes.

This talk has been presented at React Advanced 2025, check out the latest edition of this React Conference.

FAQ

The initial release cycle was roughly three months, causing delays in delivering changes to end users.

Zatu improved its release cycle by transitioning to a sprint-based release system and implementing test automation and a shift-left approach in quality assurance.

Zatu focuses on providing an easy streaming experience across various devices, allowing users to watch content on mobile devices, TVs, and even smart fridges.

Zatu uses a mix of web and native technologies, including Android with Kotlin, Apple with Swift, and web development with JavaScript and React. They are transitioning to React Native.

The shift-left approach involves testing early in the development process, moving from testing at the release stage to the feature stage to catch bugs sooner and improve quality.

Zatu redefined quality assurance by automating tests and expanding QA responsibilities across engineering, design, and product ownership, utilizing a multi-layer testing strategy.

Test automation at Zatu is crucial for ensuring fast and reliable quality assurance, allowing for efficient testing across various technologies and platforms.

Zatu ensures fast test execution through caching, change recognition, and executing tests only for affected components.

Zatu handles flaky tests by employing a strategy where the master branch is always releasable, using git to revert changes if necessary and addressing flakiness promptly.

Bogdan Plieshka
Bogdan Plieshka
29 min
28 Nov, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Discussion on improving release cycles and testing efficiency, transitioning to React Native, quality assurance challenges addressed through redefined responsibilities and test automation, shift-left approach for early testing and diversification of automated tests, efficient test execution with caching strategies, impact of caching on CI performance, efficiency with change recognition and caching, project-specific approaches for testing, test optimization with AI and Pyramid test structure, QA team transitioning to engineering, handling unautomated tests and test association, maintaining test stability with Git revert strategy.

1. Testing Efficiency and Product Overview

Short description:

Discussion on improving release cycles and testing efficiency, personal introduction, and product overview.

Let's talk about testing. And this is a case study of the company I'm working in and the product I'm working on. And let me start with some confession. We develop applications, and for a long time, we were slow. Our release cycle, you know, this thing where you're planning, developing, testing things, and releasing them to the end users for us, like two years ago was roughly three months. And that's quite a pain for an engineer to see that your change is reaching users in such a long time.

I'm not sure who of you is sharing this pain, but let's get each other to get better, know each other better. So who feels this pain now? Or felt this pain in the past? Oh, ho, ho, I got the right people here. Please raise your hand if your delivery cycle is around a month. Okay, okay. And please raise your hand if it's like a two-week sprint-based. Oh, nice, nice, nice. And who is the happy ones that can release less than in one week or continuously? Not bad, not bad. Okay.

Yeah, so the whole talk will be about how we in the company went from here to here. And let me introduce myself. I'm Bogdan. I'm a principal engineer at Zatu. I'm organizing the React Berlin meetup. I'm a father of a teenager girl and this is not... This is hard. And a twin son. I'm an owner of Australian Shepherd and I'm a partner to my spouse in every adventure that she leads us. And the product I'm working on, and this is important to give you a context because all of the decisions we've made is basically coming from the complexity and a lot of optimization. But it's really, you need to first understand product to understand what we apply.

So the product, we are Zatu and it's all about streaming. Zatu providing an easy streaming experience, no matter of what device. It could be you are watching your football game of your favorite team in your mobile device while you're traveling on the train. It could be you gather together in the living room in the Christmas to watch some Christmas movie like a diehard. Could be you are watching automotive while you're traveling somewhere in Europe.

2. Diverse Platforms and Client Support

Short description:

Discussion on diverse platforms and technologies, transitioning to React Native, and broad client support.

Or zipping your coffee and looking at what Trump did today on your fridge. And this is actually a real story. Not about Trump but the fridge. We put our application to the fridge and it was surprisingly working. PWA is awesome. As you see there is many different devices, many different platforms that we are targeting. And this is quite a zoo of technologies. And we are using different projects to make applications running.

So the projects in our understanding is something in our monorepo that we can build applications from. And our stack still is kind of mixed between web and native. Like Android with Kotlin, Apple with Swift, and web with JavaScript and React. We are currently switching to something more universal because of I'm not sure if you hear like Amazon just released a Vega OS which is very React native first. And this also drives us as pioneers to integrate with them and build applications for them. So we are switching towards all of the native and web stack to React native.

All the talk could arise from that, but I won't focus on that and guide you through the clients' support. And clients are something different from the project. Clients represent like a target platform or operating system like TVOS, Android TV, Fire TV, WebOS, iOS, Android, you name it. Windows browsers different, Chromium, if any other browsers live these days. And more to that, we are not only Zatu as a B2C product, we also doing wide labeling and producing applications for different tenants like Einstein in Germany, Air TV in Ireland, Monaco TV in Monaco, Zalt, Switzerland, I guess, Huawei in Netherlands, and so on, so on. And of course, Zatu, which we primarily know about. And this gives us quite a matrix.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Network Requests with Cypress
TestJS Summit 2021TestJS Summit 2021
33 min
Network Requests with Cypress
Top Content
Cecilia Martinez, a technical account manager at Cypress, discusses network requests in Cypress and demonstrates commands like cydot request and SCI.INTERCEPT. She also explains dynamic matching and aliasing, network stubbing, and the pros and cons of using real server responses versus stubbing. The talk covers logging request responses, testing front-end and backend API, handling list length and DOM traversal, lazy loading, and provides resources for beginners to learn Cypress.
Testing Pyramid Makes Little Sense, What We Can Use Instead
TestJS Summit 2021TestJS Summit 2021
38 min
Testing Pyramid Makes Little Sense, What We Can Use Instead
Top Content
Featured Video
Gleb Bahmutov
Roman Sandler
2 authors
The testing pyramid - the canonical shape of tests that defined what types of tests we need to write to make sure the app works - is ... obsolete. In this presentation, Roman Sandler and Gleb Bahmutov argue what the testing shape works better for today's web applications.
Debugging JS
React Summit 2023React Summit 2023
24 min
Debugging JS
Top Content
Watch video: Debugging JS
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
A Framework for Managing Technical Debt
TechLead Conference 2023TechLead Conference 2023
35 min
A Framework for Managing Technical Debt
Top ContentPremium
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Building a Voice-Enabled AI Assistant With Javascript
JSNation 2023JSNation 2023
21 min
Building a Voice-Enabled AI Assistant With Javascript
Top Content
This Talk discusses building a voice-activated AI assistant using web APIs and JavaScript. It covers using the Web Speech API for speech recognition and the speech synthesis API for text to speech. The speaker demonstrates how to communicate with the Open AI API and handle the response. The Talk also explores enabling speech recognition and addressing the user. The speaker concludes by mentioning the possibility of creating a product out of the project and using Tauri for native desktop-like experiences.
A Practical Guide for Migrating to Server Components
React Advanced 2023React Advanced 2023
28 min
A Practical Guide for Migrating to Server Components
Top Content
Watch video: A Practical Guide for Migrating to Server Components
React query version five is live and we'll be discussing the migration process to server components using Next.js and React Query. The process involves planning, preparing, and setting up server components, migrating pages, adding layouts, and moving components to the server. We'll also explore the benefits of server components such as reducing JavaScript shipping, enabling powerful caching, and leveraging the features of the app router. Additionally, we'll cover topics like handling authentication, rendering in server components, and the impact on server load and costs.

Workshops on related topic

Designing Effective Tests With React Testing Library
React Summit 2023React Summit 2023
151 min
Designing Effective Tests With React Testing Library
Top Content
Featured Workshop
Josh Justice
Josh Justice
React Testing Library is a great framework for React component tests because there are a lot of questions it answers for you, so you don’t need to worry about those questions. But that doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is tricky to test? And what in the world are you supposed to do about that persistent act() warning?
In this three-hour workshop we’ll introduce React Testing Library along with a mental model for how to think about designing your component tests. This mental model will help you see how to test each bit of logic, whether or not to mock dependencies, and will help improve the design of your components. You’ll walk away with the tools, techniques, and principles you need to implement low-cost, high-value component tests.
Table of contents- The different kinds of React application tests, and where component tests fit in- A mental model for thinking about the inputs and outputs of the components you test- Options for selecting DOM elements to verify and interact with them- The value of mocks and why they shouldn’t be avoided- The challenges with asynchrony in RTL tests and how to handle them
Prerequisites- Familiarity with building applications with React- Basic experience writing automated tests with Jest or another unit testing framework- You do not need any experience with React Testing Library- Machine setup: Node LTS, Yarn
Detox 101: How to write stable end-to-end tests for your React Native application
React Summit 2022React Summit 2022
117 min
Detox 101: How to write stable end-to-end tests for your React Native application
Top Content
Workshop
Yevheniia Hlovatska
Yevheniia Hlovatska
Compared to unit testing, end-to-end testing aims to interact with your application just like a real user. And as we all know it can be pretty challenging. Especially when we talk about Mobile applications.
Tests rely on many conditions and are considered to be slow and flaky. On the other hand - end-to-end tests can give the greatest confidence that your app is working. And if done right - can become an amazing tool for boosting developer velocity.
Detox is a gray-box end-to-end testing framework for mobile apps. Developed by Wix to solve the problem of slowness and flakiness and used by React Native itself as its E2E testing tool.
Join me on this workshop to learn how to make your mobile end-to-end tests with Detox rock.
Prerequisites- iOS/Android: MacOS Catalina or newer- Android only: Linux- Install before the workshop
API Testing with Postman Workshop
TestJS Summit 2023TestJS Summit 2023
48 min
API Testing with Postman Workshop
Top Content
WorkshopFree
Pooja Mistry
Pooja Mistry
In the ever-evolving landscape of software development, ensuring the reliability and functionality of APIs has become paramount. "API Testing with Postman" is a comprehensive workshop designed to equip participants with the knowledge and skills needed to excel in API testing using Postman, a powerful tool widely adopted by professionals in the field. This workshop delves into the fundamentals of API testing, progresses to advanced testing techniques, and explores automation, performance testing, and multi-protocol support, providing attendees with a holistic understanding of API testing with Postman.
1. Welcome to Postman- Explaining the Postman User Interface (UI)2. Workspace and Collections Collaboration- Understanding Workspaces and their role in collaboration- Exploring the concept of Collections for organizing and executing API requests3. Introduction to API Testing- Covering the basics of API testing and its significance4. Variable Management- Managing environment, global, and collection variables- Utilizing scripting snippets for dynamic data5. Building Testing Workflows- Creating effective testing workflows for comprehensive testing- Utilizing the Collection Runner for test execution- Introduction to Postbot for automated testing6. Advanced Testing- Contract Testing for ensuring API contracts- Using Mock Servers for effective testing- Maximizing productivity with Collection/Workspace templates- Integration Testing and Regression Testing strategies7. Automation with Postman- Leveraging the Postman CLI for automation- Scheduled Runs for regular testing- Integrating Postman into CI/CD pipelines8. Performance Testing- Demonstrating performance testing capabilities (showing the desktop client)- Synchronizing tests with VS Code for streamlined development9. Exploring Advanced Features - Working with Multiple Protocols: GraphQL, gRPC, and more
Join us for this workshop to unlock the full potential of Postman for API testing, streamline your testing processes, and enhance the quality and reliability of your software. Whether you're a beginner or an experienced tester, this workshop will equip you with the skills needed to excel in API testing with Postman.
Monitoring 101 for React Developers
React Summit US 2023React Summit US 2023
107 min
Monitoring 101 for React Developers
Top Content
WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
If finding errors in your frontend project is like searching for a needle in a code haystack, then Sentry error monitoring can be your metal detector. Learn the basics of error monitoring with Sentry. Whether you are running a React, Angular, Vue, or just “vanilla” JavaScript, see how Sentry can help you find the who, what, when and where behind errors in your frontend project. 
Workshop level: Intermediate
Building a Shopify App with React & Node
React Summit Remote Edition 2021React Summit Remote Edition 2021
87 min
Building a Shopify App with React & Node
Top Content
Workshop
Jennifer Gray
Hanna Chen
2 authors
Shopify merchants have a diverse set of needs, and developers have a unique opportunity to meet those needs building apps. Building an app can be tough work but Shopify has created a set of tools and resources to help you build out a seamless app experience as quickly as possible. Get hands on experience building an embedded Shopify app using the Shopify App CLI, Polaris and Shopify App Bridge.We’ll show you how to create an app that accesses information from a development store and can run in your local environment.
Testing Web Applications Using Cypress
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
Top Content
Workshop
Gleb Bahmutov
Gleb Bahmutov
This workshop will teach you the basics of writing useful end-to-end tests using Cypress Test Runner.
We will cover writing tests, covering every application feature, structuring tests, intercepting network requests, and setting up the backend data.
Anyone who knows JavaScript programming language and has NPM installed would be able to follow along.