Skip to content
Back to skills

Quality Engineering Test Healing

ASecurity

Failure taxonomy and allowed/forbidden repairs for a failing E2E test. Use when a Playwright/Maestro/Detox/XCUITest/Espresso/Appium test fails and you must decide whether to repair the test or route to a real bug.

  • 565 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 21, 2026
developmentgo

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 21, 2026

npx -y skills add HoangNguyen0403/agent-skills-standard --skill quality-engineering-test-healing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Quality Engineering Test Healing?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Quality Engineering Test Healing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hoangnguyen0403-quality-engineering-test-healing/badge)](https://www.skillsdirectory.com/skills/hoangnguyen0403-quality-engineering-test-healing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: quality-engineering-test-healing
description: Failure taxonomy and allowed/forbidden repairs for a failing E2E test. Use when a Playwright/Maestro/Detox/XCUITest/Espresso/Appium test fails and you must decide whether to repair the test or route to a real bug.
metadata:
  triggers:
    files:
      - "test-results/**"
      - "playwright-report/**"
    keywords:
      - heal test
      - failing e2e
      - selector repair
      - test healer
      - fix the test
      - timed out waiting for
---
# Quality Engineering: Test Healing

## **Priority: P0 (CRITICAL)**

## Failure Classes

`SELECTOR_DRIFT` (id/locator changed) · `TIMING_SYNC` (race/wait, no state change) · `DATA_ENV` (fixture/seed/env stale) · `INFRA` (network/runner/flake) · `REAL_REGRESSION` (product behavior actually changed).

Classify from evidence: trace/screenshot/DOM diff supports a drift/timing/data explanation, or the product diff shows an intentional behavior change (REAL_REGRESSION).

## Allowed Repairs

Move the locator up the selector ladder (e.g., `getByRole` if the ID changed); replace a sleep with an explicit state wait; fix a stale fixture/seed; retry only for `INFRA`.

## Forbidden Repairs

Never weaken an assertion. Never add `test.skip`/`fixme`; a test that must stop gating goes to quarantine per `quality-engineering-flaky-triage` with a ticket + expiry, and keeps running. Never widen a matcher. Never inflate a timeout by more than 2x. Never blind `--update-snapshots`. Never catch-and-continue. Never touch production code — that is `REAL_REGRESSION`, not a heal.

## Verdicts

`HEALED` (repair verified by 3 consecutive green reruns, ASSERTION_DELTA: none) · `REAL_BUG_DO_NOT_HEAL` (route to dev-fix) · `QUARANTINE_CANDIDATE` (flaky, route to flaky-triage) · `BLOCKED` (no evidence artifact, or no stable locator target: route to `specialist-testid-inserter`).

## Red Flags

"the assertion was too strict anyway" · "the product changed so update the expected value" · "just add retries so it goes green" — do not heal with these rationalizations. All three are `REAL_BUG_DO_NOT_HEAL` or `QUARANTINE_CANDIDATE` in disguise, never `HEALED`.

## References

- [Failure Taxonomy Signals](references/failure-taxonomy.md)
- [Repair Catalog](references/repair-catalog.md)
- [Forbidden Repairs](references/forbidden-repairs.md)
- [Verdict Contract](references/verdict-contract.md)
- [Flaky Triage](../quality-engineering-flaky-triage/SKILL.md) — quarantine contract for `QUARANTINE_CANDIDATE`
- [Visual Baseline](../quality-engineering-visual-baseline/SKILL.md) — screenshot failures before `REAL_REGRESSION`

Files in this skill

  • SKILL.md2.6 KB
  • references/failure-taxonomy.md1.4 KB
  • references/forbidden-repairs.md712 B
  • references/repair-catalog.md935 B
  • references/verdict-contract.md818 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…