All decks Close
All decks 184
  • Computer, Don't Fail Me

    Modern AI coding assistants like GitHub Copilot and Cursor promise easy test automation; just prompt the assistant to write a test, and watch it work. I found the day-to-day experience much different. In this talk, I will show which tasks AI is suitable for, how to collect relevant context for each prompt, and how to guide the AI to code better end-to-end tests. Presented at MaineJS meetup.

  • Feature Flags And End-to-End Testing

    Using feature flags is a popular way of developing new software features, but it presents problems for the integration and end-to-end tests. In my talk I will show principles for dealing with feature flags from E2E web tests. Shown at DevMTL, 40 minutes

  • Running 1000 End-To-End Web Tests Daily

    We run a LOT of end-to-end web tests at Mercari US, and making sure the tests are quick and useful is a challenge. In this talk, I describe our approach to running the tests on each pull request, adding new tests, and running tests targeted at each feature area. If you want to see how running 1000s end-to-end tests daily works, this talk is for you.

  • Codeless AI Test Automation Makes Me Code A Lot

    Modern AI coding assistants like GitHub Copilot and Cursor promise easy test automation; just prompt the assistant to write a test, and watch it work. I found the day-to-day experience much different. In this talk, I will show how to collect relevant context for each prompt, how to evaluate AI results, and how to guide the AI to code better end-to-end tests. Presented at TokyoTest Fest 2025

  • Network Control for End-to-End Web Testing

    A modern web application probably makes tens of network calls during a typical user flow. A good end-to-end web test must observe and in some cases mock the network calls to make the test reliable, complete, and easy to debug. I will show some of my tips and tricks for using and controlling network API calls during tests. I will use Cypress E2E test runner for my examples plus the "record - replay - inspect" pattern for API mocking. Presented at Testmu online conference, 40 minutes. Video at https://youtu.be/loasu1WiPWM

  • Network Control for End-to-End Web Testing

    A modern web application probably makes tens of network calls during a typical user flow. A good end-to-end web test must observe and in some cases mock the network calls to make the test reliable, complete, and easy to debug. I will show some of my tips and tricks for using and controlling network API calls during tests. I will use Cypress E2E test runner for my examples plus the "record - replay - inspect" pattern for API mocking. Presented at Testmu online conference, 40 minutes. Video at https://youtu.be/loasu1WiPWM

  • Writing Tests Using GitHub Copilot: ConFoo

    want to show you the secret weapon I have used for the past year. The GitHub Copilot lets me write full tests quickly, fills the gaps in my knowledge of 3rd party tools, and even writes clear descriptive commit messages. But it is not a "press the button to do it all". You need to guide the AI to do the right thing, which takes experience, but most importantly, you need to decide _what_ you want the AI to do, step by step. Presented at ConFoo 2025, 45 minutes

  • Cypress vs Playwright: What Is the Difference?

    I will show how the two most popular modern web application testing tools, Cypress and Playwright, approach the same problem differently. We will see how to write end-to-end, API, and component tests using both tools and how to execute them on a continuous integration system. Instead of declaring a winner, we will see the advantages of each test runner. Presented at ConFoo 2025, 45 minutes

  • Productive E2E Test Writing Using GitHub Copilot

    I want to show you the secret weapon I have used for the past year. The GitHub Copilot lets me write full tests quickly, fills the gaps in my knowledge of 3rd party tools, and even writes clear descriptive commit messages. But it is not a "press the button to do it all". You need to guide the AI to do the right thing, which takes experience, but most importantly, you need to decide _what_ you want the AI to do, step by step. Remember: AI is not going to replace you any time soon. But someone more productive with AI's help might get ahead. Let's learn Copilot for real-world test writing. It might change how you work. If you master it, Copilot becomes your super weapon. It is like playing Super Mario - in some games, you can dash quickly by pressing the "Y" button, but you need to be pointing in the right direction first.

  • Network Control for End-to-End Web Testing

    A modern web application probably makes tens of network calls during a typical user flow. A good end-to-end web test must observe and in some cases mock the network calls to make the test reliable, complete, and easy to debug. I will show some of my tips and tricks for using and controlling network API calls during tests. We will see how Cypress, Playwright, and Vitest implement network spies and stubs, and what we can achieve by writing just a little bit of custom code on top of existing features.

  • Writing Tests Using GitHub Copilot

    I want to show you the secret weapon I have used for the past year. The GitHub Copilot lets me write full tests quickly, fills the gaps in my knowledge of 3rd party tools, and even writes clear descriptive commit messages. But it is not a "press the button to do it all". You need to guide the AI to do the right thing, which takes experience, but most importantly, you need to decide _what_ you want the AI to do, step by step. Remember: AI is not going to replace you any time soon. But someone more productive with AI's help might get ahead. Let's learn Copilot for real-world test writing. It might change how you work. If you master it, Copilot becomes your super weapon. It is like playing Super Mario - in some games, you can dash quickly by pressing the "Y" button, but you need to be pointing in the right direction first. Presented at MaineJS 2024 video at https://www.youtube.com/watch?v=rTIwu8V2ujg

  • Fast E2E Testing Using Cypress For Free

    Unit testing is simple, yet it only checks small pieces of code. End-to-end testing of real web applications can potentially find a lot more problems across the entire stack. Yet E2E tests are delegated to the very tip of the testing pyramid - because the tools for controlling a large application inside a real browser are brittle, and the development experience is a mixed bag. But now we have new great tools for reliable browser automation: Cypress.io and Playwright. Both tools allow quickly writing hundreds of end-to-end, component, and even API tests. Now we have a problem: how do we run all these tests quickly when we work locally or on CI? In this presentation, Gleb will explain how to speed up Cypress test execution locally and on CI using free open-source solutions that do not require paying for 3rd party dashboards or services. We will explore using API calls, data caching, and app actions to speed up each test. We also will see how to configure CI specs to split the entire test suite into multiple machines running in parallel. This presentation will benefit anyone who wants their end-to-end and component Cypress tests to finish quickly. Video at https://youtu.be/rQYgakjaZA0

  • Journey from procedural to reactive JavaScript with stops

    JavaScript is an interesting language. It can mimic almost any style you want: procedural, object-oriented, functional, etc. In this presentation, I will take a simple problem and will solve it using different approaches. With each step, we will see the power of each approach to take the complexity away, while still being the JavaScript we all love to hate. Presented at iJS May 2024, 30 minutes

  • Writing Tests Using GitHub Copilot

    I want to show you the secret weapon I have been using for the past year. The GitHub Copilot lets me write full tests quickly, fills the gaps in my knowledge of 3rd party tools, and even writes clear descriptive commit messages. But it is not a "press the button to do it all". You need to guide the AI to do the right thing, which takes experience, but most importantly, you need to decide _what_ you want the AI to do, step by step. Remember: AI is not going to replace you any time soon. But someone being a lot more productive with AI's help might get ahead. Let's learn Copilot for real-world test writing. It might change how you work. If you master it, Copilot becomes your super weapon. It is like playing Super Mario - in some games, you can dash quickly by pressing the "Y" button, but you need to be pointing in the right direction first. Presented at iJS 2024, 30 minutes

  • Fast Testing Using Cypress For Free

    In this presentation, Gleb will explain how to speed up Cypress test execution locally and on CI using free open-source solutions that do not require paying for 3rd party dashboards or services. We will explore using API calls, data caching, and app actions to speed up each test. We also will see how to configure CI specs to split the entire test suite into multiple machines running in parallel. This presentation will benefit anyone who wants their end-to-end and component Cypress tests to finish quickly. Video at https://youtu.be/1idlr9IE0oU

  • Fast Testing Using Cypress For Free

    In this presentation, Gleb will explain how to speed up Cypress test execution locally and on CI using free open-source solutions that do not require paying for 3rd party dashboards or services. We will explore using API calls, data caching, and app actions to speed up each test. We also will see how to configure CI specs to split the entire test suite into multiple machines running in parallel. This presentation will benefit anyone who wants their end-to-end and component Cypress tests to finish quickly. Boston Code Camp 30 minutes

  • End-To-End Test Your Web Security

    Script injection attacks can load the attacker's code and run it on your website when other users browse it. You can prevent such attacks using content security policies, but how do you ensure your defense mechanisms actually work? By testing them! In this talk, I explain the content-security-policy, the security violation reporting, and how we can write a Cypress test to verify the attacks are stopped. Boston Code Camp 30 minutes

  • Fast Testing Using Cypress For Free

    In this presentation, Gleb will explain how to speed up Cypress test execution locally and on CI using free open-source solutions that do not require paying for 3rd party dashboards or services. We will explore using API calls, data caching, and app actions to speed up each test. We also will see how to configure CI specs to split the entire test suite into multiple machines running in parallel. This presentation will benefit anyone who wants their end-to-end and component Cypress tests to finish quickly. Video at https://youtu.be/1idlr9IE0oU

  • Testing With Cypress vs Playwright: What Is the Difference?

    In this presentation, I will show how the two most popular modern web application testing tools, Cypress and Playwright, approach the same problem in very different ways. We will see how to write end-to-end, API, and component tests using both tools and how to execute them on a continuous integration system. While other comparisons often focus on finding a single winner, I would like to list the main advantages of each tool to help you make an informed decision depending on your use case. Presented at iJS Sept 2023 in NYC, 30 minutes.

  • Is There Anything GitHub Actions Cannot Do?!

    Writing continuous integration YML scripts is a cumbersome and awkward process. What if there was a better way? GitHub Actions let you write JavaScript code to build, test, and deploy your applications. Even better, you don't have to write actions yourself. You can reuse actions written by others. Plus, integration with the GitHub repo security lets your CI code easily contribute back to the repository or trigger other steps. Presented at DevOpsCon NYC September 2023, 30 minutes