How it is built
Every run produces page states. The app graph turns those into structure without you maintaining a map by hand:- Each observed UI state is fingerprinted (canonical URL plus a normalized, minhashed view of the DOM) so near-identical states collapse to one.
- A short semantic summary of each state is embedded.
- States are clustered into a taxonomy of product areas, features, journeys, variants, and segments.
The taxonomy
- Product area and Feature group the app by what it does.
- Journey is a user-facing flow. A journey has one or more variants (for example, the success path and an error path), and each variant is a sequence of segments (steps a test would walk through).
Coverage states
Each journey variant has a status derived from the latest runs of the tests that match it:
When a variant is Missing, the reason is surfaced (no matching test vs. all
matching tests failing) so a failing population does not look like an untested
one.
Proposals
As runs reveal journeys the graph does not yet model, the system proposes additions (new product areas, features, journeys, variants, or segments). You review them in a proposals queue and approve or reject each one, so the model stays accurate without absorbing noise automatically.AI test selection
AI test selection uses the app graph to map a pull request’s code changes to the product journeys and tests that can regress. The graph adds runtime evidence that a code index cannot derive from imports alone, including connections across API, data, and UI boundaries. AI test selection can start with a partial graph, but selection quality improves as more runs connect application states and journeys to tests.Related
- What is AI-native testing?
- Explore agent for authoring tests against changed journeys.
- AI test selection for choosing tests to run for a code change.
- Quarantine for how quarantined tests affect coverage.