Creating Faster and More Reliable Web Tests with Blended Testing

Automated acceptance tests are often implemented to exercise a fully-assembled and deployed system through its web interface. This approach makes them slow and flaky and reduces the value they could be bringing to your organisation.

Blended Testing is a technique that can improve the speed and stability of web-based test scenarios by making them take shortcuts through other interfaces of the system under test.
To use it effectively, though, we need to know when it's safe to take shortcuts and how to take them - this is where Task Analysis and the Screenplay Pattern can help.

In this talk, Jan Molak - Lead Developer of Serenity/JS and co-author of "BDD in Action, Second Edtion" will show you how to apply Task Analysis, Screenplay Pattern, and use Serenity/JS 3.0 to design and develop blended test scenarios that exercise multiple interfaces of the system under test to improve execution speed and stability.



Outline/Structure of the Deep Dive Session

In this practical session, we'll refactor a non-trivial web-based test to introduce business domain language and abstractions that help to swap out UI interactions for interactions with REST API.

To do that:

  • we'll start with an example of a typical, non-trivial web test implemented using WebdriverIO
  • introduce Task Analysis and use it to identify business domain-specific tasks (e.g. "add product to basket" vs "click on img tag")
  • use Serenity/JS 3.0 Screenplay Pattern APIs to implement Web and REST API-specific flavours of those tasks (e.g. PopulateProductCatalogViaAPI vs PopulateProductCatalogViaUI)

Learning Outcome

By the end of the session, you'll be able to:

  • explain how to use Task Analysis to identify business-focused tasks in a traditional spaghetti test script
  • use Serenity/JS Screenplay Pattern APIs to turn the test script into a test scenario using business domain vocabulary
  • use Serenity/JS Web and REST modules to implement blended tests

Target Audience

Test automation engineers, developers

Prerequisites for Attendees

A basic understanding of automating test scenarios interacting with Web-based interfaces and REST APIs.

schedule Submitted 1 month ago

  • Christian Bromann

    Christian Bromann - Component Testing with WebdriverIO

    Christian Bromann
    Christian Bromann
    Software Engineer
    schedule 1 month ago
    Sold Out!
    40 Mins

    With more frontend frameworks on the rise web component testing becomes a crucial part of everyones testing stack. It allows to test various features of a single component of your UI and can help to reduce the amount of e2e around it that usually would run slower.

    There are already many component testing tools available but almost all of them miss an important feature: running the test in an actual browser. While one might argue that running test in a virtual DOM is fine for testing why not just run them in the browser if you can. With WebdriverIO v8 and its new browser runner capabilities, you can now execute unit or component tests directly in the browser with no complicated set-up required and use the power of the WebDriver protocol to seamlessly interact with them, as a user would do.

    In this session, Christian Bromann, Founding Engineer at Stateful, will tell you all about the new browser runner capabilities and will show case hands on live demos testing components in Vue, Svelte, React or Preact. Be amazed as component testing has never been so easy before!

  • Maksim Sadym

    Maksim Sadym / Sri Harsha - WebDriver BiDi + Selenium. Why and How?

    40 Mins

    We are presenting a hands-on talk with demonstrating Selenium work over WebDriver BiDi to ChromeDriver.

    1. Short introduction into WebDriver BiDi
    2. Hands-on demonstration
  • Eric Frankenberger

    Eric Frankenberger - Deploying a Large Selenium Grid with Video Recording and Autoscaling When Docker Swarm & Kubernetes Are Not an Option

    40 Mins
    Deep Dive Session

    Selenium Grid and Docker Selenium are great testing tools, but how do you deploy them at scale across an organization where you can't use Docker Swarm or Kubernetes for orchestration?

    In this deep dive, I’ll discuss the basics of setting up a Selenium Grid and the custom services you'll need to scale it up to 100+ nodes with per-test video recording and autoscaling.  As a real world example, you’ll see how single use nodes can be used to ensure a sterile test environment.

  • 40 Mins
    Deep Dive Session

    Maintaining automation suites is like taking care of a child, every month, every year there are new things to act upon, learn along, and definitely, there is no way to run it on autopilot.

    Well, that said to make your application under test resilient to regression, you got to do continuous automation.

    Continuous testing is not just about writing new test cases every week or sprint. It just doesn't stop there. It rather includes

    • Continuous Data Generation
    • Continuous attempts to heal the flaky tests
    • Continuously improving the framework with the latest features available e.g. using Selenium 4 new way of finding selectors
    • Continuous optimization of time to execute the entire suite. (The QA Ops part.)
    • Continuous evaluation of test priorities as the business brings new important features gaining traction
    • Continuous New Tests (of course)
    • Continuous Integration
    • Continuous testing

    We at Deutsche Telekom are no different; by preaching the above-mentioned bullets and some more continuous efforts, our automation suite fuels 11 countries running their e-commerce which is both omnichannel as well as supports multiple lines of businesses.

  • Jan Molak

    Jan Molak - How to make your automated tests benefit not just your team but your entire company.

    40 Mins
    Deep Dive Session

    Imagine everyone on your team being able to contribute to your automated tests, even if they're not experts in test automation.
    Imagine being able to express your tests in business domain language that your domain experts and business sponsors can immediately understand.
    Imagine turning your tests into reusable test automation libraries that other teams can use, helping your entire company benefit from your work.

    All this is what establishing a ubiquitous domain language can feel like and what finding the right abstractions can enable.

    In this talk, Jan Molak - Lead Developer of Serenity/JS and co-author of "BDD in Action, Second Edition", will show you how the new features in Serenity/JS 3.0 can help you get started on this journey.