E2E Testing Decoded: Elevating Quality Assurance to the Next Level

2023-9-1 - Michael

3 min read

Maintaining a comprehensive suite of E2E tests can be beneficial as they help in catching regressions even before the product gets released. While it can seem challenging to keep track of everything manually, catching a regression before its release can save considerable time. The alternative might involve addressing the issue with a hot-fix once it’s live, which could be more time-consuming.

A significant query that arises is: How can one ensure that their E2E testing effort is streamlined, has a notable impact, and is worth the engineering time invested?

Mapping Testing Efforts to User Experience E2E testing should be aligned with the end user’s experience, and it’s essential to measure its exact coverage, particularly for vital user journeys. Start by determining the percentage of regression tests that your E2E automation covers. The ideal scenario is to completely eliminate manual regression testing. Furthermore, an ambitious but achievable goal is to do away with manual testing entirely. Some companies have already implemented this, releasing their products without manual quality assurance checks to varied degrees of success.

While manual QA is invaluable, any bugs identified during this phase should result in additional E2E tests to prevent their recurrence in the future. This can serve as a success metric for your E2E testing efforts. Furthermore, any production issues or crashes should be integrated into the automated test suite. Over time, ensuring that critical E2E tests block any changes from being merged until all tests pass can result in enhanced engineering productivity due to increased stability of the primary development branch.

Understanding the Nuances of E2E Testing Testing is essentially an investment of time in the initial stages, hoping to save time later by preventing severe regressions from making it to production. A common challenge that engineers face is the interruption of their work due to a failed test, only to discover that the test is inherently faulty or unstable.

It’s vital to grasp the true nature of the bugs that your tests are detecting:

What is the volume of bugs you’re identifying? Is it 5 or 50 within a certain timeframe? What is the intensity of these issues? Are they minor UI glitches or major setbacks? E2E tests can be tricky since they’re often time-consuming, susceptible to instability, and challenging to sustain as they encompass the entire tech stack. Some organizations, recognizing the instability and challenges posed by the E2E suite, aim to reduce their reliance on them. A key consideration is whether it’s feasible to achieve the primary objectives of E2E tests using more lightweight tests, such as unit tests and snapshot/screenshot tests, especially if the E2E tests have proven to be unstable.

While E2E testing is an invaluable tool in the QA arsenal, it’s essential to regularly evaluate its effectiveness and optimize for maximum impact and efficiency. One way engineers can avoid E2E testing hell is by improving their code quality upfront. Fortunately, there are tools available to help streamline the process by having checklists in your pull requests, like www.pullchecklist.com. This platform offers a helpful interface for designing checklists and integrating them into your pull request workflow. With Pull Checklist, you can easily create custom checklists for your team that dynamically appear based on the size of the pull request, whether certain files were changed, the description used in the pull request, and many other configurable rules. It’s a valuable tool for any software engineering team looking to improve its quality assurance.