We mapped the app into a tree where every node is a screen and every edge is an action. That map is not just documentation — each screen exposes the buttons no test has pressed yet, and each of those is a concrete candidate new test case. We then live-proved the growth on the real device. The claim of this report: from this small tree, the corpus can grow systematically.
The whole approach rests on one mapping. A node is a real device screen. An edge is an action — pressing a button — that lands you on another screen. So an edge, too, resolves to a screen. Here is one real transition, captured live on the device:
For each mapped screen, the capture records every clickable on it. Subtract the buttons some test has already pressed, and what remains are untested affordances — the frontier. Each is a button that, when pressed, leads to a (currently unmapped) screen: a concrete candidate new test case. Across the 22 mapped screens, 14 are pure frontier (nothing has been actuated from them yet), exposing 60 untested affordances:
| Frontier screen | example untested buttons | candidate tests |
|---|---|---|
| Exercise List | Add workouts, Bike, Bike indoor, Circuit training … | +14 |
| BloodPressure | About blood pressure, Antioxidant index, Blood glucose, Body composition … | +11 |
| Breathe | Before you get started, Custom, Equal, Long exhale … | +6 |
| MoodCheckIn | Awesome!, Bad, Fine, Good … | +5 |
| BloodPressureInput | Diastolic (mmHg), None, Notes, Systolic (mmHg) | +4 |
| (unresolved) | About your heart health score, Track your heart health, Vascular load, Why it matters | +4 |
| WeightInput | Body fat, Notes, Skeletal muscle | +3 |
| FoodDetail | Add calories, Add food, Dinner | +3 |
Each candidate is a ready-to-author natural-language test, e.g. “select Circuit training” — the selector is deterministic, read-only, and needs no AI.
The frontier is only useful if a candidate can actually become a durable test. We took one — “Circuit training” on the Exercise list — and drove it live on the device:
A node is a screen — click it for the device screenshot. An edge is an action — click it to see the action and the screen it lands on. Toggle After to reveal the frontier (+N per screen) and the one proven growth (green).
Select a node (a screen) or an edge (an action).
From a tree of just 22 screens, the corpus is not fixed — it is a frontier we can walk. 60 candidate tests are already identified across 14 screens, one is live-proven, and every screen we add exposes a new frontier. Growth proceeds frontier → author → live-prove → re-fold → new frontier, bounded only by where the tree can still extend. A small, correct map is the seed of a large, self-growing test corpus.
Source of truth: committed menu-tree fold of 20 capture-logs + the live spike slice.
Node identity is re-derived at fold time (screen-identity v2); the frontier selector is deterministic (no AI).
Screenshots are real device captures. Generated from blackboard/project + fixtures.