skip to content

A suite's locator healing rate has risen from 2% to 30% of steps this quarter - what does that tell you?

level: seniorimportance: nice to knowfreq 22%

answer

  1. Count the repairs, not just the passes
  2. A trend, read against what changed
  3. One spike usually means one shared control
  4. Each repair becomes the next one's baseline
  5. Give the rate a ceiling that fails the run

basics

~20 s

A climbing healing rate says the suite's locators are drifting from the product faster than anyone repairs them at source. Repair has become the maintenance strategy: at thirty percent, one located step in three operates an element nobody chose.

solid answer

~50 s

The healing rate - the share of located steps that needed a substitute - is a coupling metric, not a quality metric. Two percent is a safety net catching occasional drift; thirty percent means most of the suite no longer describes the product it drives. Read the trend against what changed: a one-release jump usually traces to a single widely reused control whose structure changed everywhere at once, while a slow climb says the locators were tied to something volatile and nobody is fixing them at source. Compounding matters most. If the mechanism rewrites the stored description each time it repairs, every substitution becomes the reference for the next, and over a quarter a step can walk to a control nobody chose. Treat the rate as a maintenance backlog with a ceiling: publish it per run, fix the most-repaired steps first, and fail the run when it crosses.

code

json · 17 lines
json
{
  "run": "8841",
  "case": "checkout/apply-promo-code",
  "step": 7,
  "app_version": "release-2026.04.3",
  "description_captured_on_run": "8102",
  "chosen": {
    "score": 0.91,
    "features_agreed": ["attribute", "neighbour_text", "control_kind"],
    "features_disagreed": ["sibling_index"]
  },
  "runner_up": { "score": 0.44 },
  "margin": 0.47,
  "band": "repair_silent",
  "stored_description_rewritten": false,
  "screen_capture": "artefacts/8841/step-7.png"
}

go deeper

for a junior

Know that every repair should leave a record, and that a suite which repairs often is not the same as a suite that passes often. Ask to see the repair log before you trust a green run.

for a middle

Explain how the rate is computed and why the denominator matters: repairs per located step reads very differently from the share of cases touched by a repair. Be ready to list what a single repair record has to contain.

for a senior

Read the trend against the release history. A one-release jump points at a single shared control; a steady climb points at locators tied to something volatile with nobody fixing them at source. Talk about repairs rewriting their own baseline and compounding.

for a principal

Own the ceiling. Decide what healing rate the organisation tolerates before the suite counts as unmaintained, who watches the number, and what a run does when it crosses - a suite repairing a third of its steps is documenting drift, not preventing it.

The **healing rate** is the share of located steps in a run where the stored locator matched nothing and a substitute was accepted instead. Read on its own it is a curiosity. Read as a trend against what changed in the product, it is the most honest measure available of how far a suite has drifted from the application it drives. ## What a single repair record has to carry A rate is only as good as the records it aggregates. Every repair should write: 1. **Which case and which step** — the identity of the thing whose behaviour changed. 2. **The description it failed to match**, and the run on which that description was captured. 3. **The substitute chosen**, its score, and which features agreed and which did not. 4. **The runner-up's score**, so the margin is recoverable. Without it you cannot tell a confident identification from a coin flip that happened to clear the bar. 5. **The application version under test**, plus a captured image of the screen at the moment of repair. 6. **Whether the stored description was rewritten afterwards** — a `stored_description_rewritten` flag is the most consequential field in the record and the one most often missing. Records with the first three fields let you count repairs. Records with all six let you decide whether any of them were sound. ## Choosing a denominator Two rates are in common use and they answer different questions. | Rate | Denominator | What it is good for | |---|---|---| | Repairs per located step | Every element lookup the run performed | How much of the suite's contact with the application is now approximate | | Share of cases containing a repair | Cases in the run | How much of the reported result set is not a clean pass | A two-hundred-step journey that repairs one step and a two-step check that repairs one look identical by case and nothing alike by step. Publish both, or state which you mean, or every trend discussion decays into an argument about arithmetic. ## Reading the trend The shape of the curve, set beside the release history, usually names the cause. | Shape | Likeliest cause | Response | |---|---|---| | One-release step change that then holds | A single widely reused control changed structure; every step touching it now repairs | Fix that one control at source; the rate returns to its old level within a run | | Slow steady climb over months | Locators tied to something volatile, and nobody repairing them at source | Treat the most-repaired steps as a maintenance backlog with a budget | | Sawtooth: climbs, drops to zero, climbs again | Descriptions are rewritten on every repair, so the drop is the record being erased | Stop rewriting silently; require a human decision before a description is replaced | | Spike on one deployed target only | That target renders differently — different data, different feature toggles, a different locale | An environment difference, not a suite problem; find it before changing the suite | A move from 2% to 30% across a quarter is the second shape, and its message is organisational rather than technical: **healing has become the maintenance strategy**. The mechanism was adopted as a safety net for occasional drift and is now the thing keeping the suite running at all. At thirty percent, roughly one located step in three is operating an element that nobody chose. ## Why repairs compound The dangerous property of a high rate is not any individual repair; it is that repairs stack. If accepting a substitution rewrites the stored description, the next run scores candidates against the *substitute* rather than against the element the author originally picked. Each hop is defensible alone and the chain is not: over twenty releases a step can walk from a primary action to an adjacent one, one small accepted difference at a time, and no single record in the trail looks wrong. Keeping the original description immutable — repairing against it every time, and requiring a person to approve any replacement — costs a few more failures and buys back the ability to say what a step actually tests. ## Making the number act A metric nobody acts on is decoration. Three moves turn the rate into a control: - **Publish it per run**, beside the pass and fail counts, so a heavily repaired run never reads like a clean one. - **Rank the most-repaired steps** and fix those locators at source. The distribution is usually steep: a handful of steps produce most of the repairs, so a day of work often removes most of the rate. - **Give it a ceiling** — a rate above which the run fails regardless of individual case outcomes. The ceiling is what stops the slow climb, because it converts an invisible trend into a red build somebody has to answer for.

  • What has to be in a single repair record for the trend to be worth anything?
    The case and step, the description it failed to match, the substitute chosen with its score, the runner-up's score, which features agreed, the application version under test, a captured image of the screen, and whether the stored description was rewritten afterwards. Without the margin and that rewrite flag you can count repairs but cannot tell whether a single one of them was sound.
  • Why does the denominator you pick change what the healing rate appears to say?
    Repairs per located step and share of cases containing a repair answer different questions. A two-hundred-step journey that repairs one step and a two-step check that repairs one look identical counted by case and nothing alike counted by step. Publish both, or state plainly which you mean, or the trend discussion turns into an argument about arithmetic instead of about drift.

saying these in an interview costs you the question

  • Celebrates a rising healing rate as the mechanism proving its worth
  • Reports a raw count of repairs and never the rate or the trend
  • Keeps no record of which element each repair substituted
  • Lets every repair overwrite the stored description with nobody reviewing
  • Reads the rate as a product-quality number rather than suite coupling
  • Has no ceiling at which a rising rate stops the run