Hey all ????, it’s time for a product update! Let’s review what happened in Gravity these last three months.
The first service we want to provide with Gravity is to help teams build and continuously improve their end-to-end test suites (aka “the top of the test pyramid”). We stated it as the following objective:
“Enable Agile/DevOps teams to build and improve their E2E test suite, so it covers their application’s actual usage”
Concretely, it means:
- Detect and highlight critical paths for your users, so you can cover them with regression tests
- Improve your current test suite to be closest to your users’ habits and avoid regressions in the gaps existing between what you are testing and what your users are doing “in real life”
- Audit your e2e test suite to detect which ones could be removed, merged, or refactored to gain precious execution time, shorten your feedback loop, and save money (and software engineers’ happiness)
During this first quarter, we built and released a few capabilities to help you solve these problems.
First update: Track test execution-related data
So far, collected test sessions were displayed as a “flat” list. Multiple test sessions could be recorded from different runs of the same single test. Which made our usages “test coverage metrics” inaccurate. To help continuously evolve end-to-end test suites, we need to be able to know their state at a specific point in time.
Since version `3.4.0` of gravity-data-collector, you can track a `build` number to identify a run (e.g. a CI run) in Gravity (see Track test execution).
Then you can get usage metrics based on a build number (defaulted on the last collected build)
New usage auto-discovery
Since the beginning, we don’t want you to rely on heavy code instrumentation to track users’ interactions with the tested application, like in product analytics or web analytics tools. We want Gravity to be as light as possible to set up and get started with.
That’s why in the new update we added a “new usage auto-discovery” feature. We developed some AI capabilities that can crawl the technical data collected by our agent, find patterns in these data, and suggest a human-readable name to make sense of the patterns.
This feature was designed to:
- Help you discover users’ behavior you were not aware of
- Quickly monitor these behaviors and evaluate their test coverage
Discover business flows
While Gravity’s “usages” can already help improve test coverage against application usage, they are not enough. We designed them to map and compare small sequences of user interactions on a page (e.g. “create account”, “fill address form”…).
However, neither an end-to-end test nor a user journey in an application is only about isolated business actions. They all come in the bigger picture of a user realizing a task.
We introduced “Flows” in Gravity. We define flows as a sequence of business actions a user can take in an application (e.g. “the user added a product to their cart, then filled their billing address, then proceeded payment…”).
With this new feature, you can:
- Discover new untested user journeys
- Track whether a flow is important for your users or not
- Bootstrap a Cypress test covering a flow
These few features allow you to quickly create a set of end-to-end tests from your application usage. But in reality, you may already have an existing test suite that you want to improve.
In the coming months, we will work on smoothening Gravity integration with your automated tests.
We want Gravity to leverage your test data to evaluate its coverage against actual usage and give you recommendations to improve it in the most straightforward way possible.
Thanks for reading! Stay tuned!
Smoke Testing, Sanity Testing, and Regression testing: the Trifecta Understanding the differences between Smoke, Sanity, and Regression Testing is crucial…
Historically, software testing was confined to pre-production environments to validate the application against the written requirements. (also known as requirement-based…
The surge of Large Language Models (LLM) like GPT has undoubtedly revolutionized the way we approach natural language understanding and…