qa-test-impact-analysis
Test impact analysis + regression-suite hygiene: 2 skills (regression-suite-selector, coverage-debt-tracker) and 2 agents (test-suite-pruner, regression-suite-curator).
Install this plugin
/plugin install qa-test-impact-analysis@testland-qaPart of role bundles: qa-role-sdet, qa-role-leadership
qa-test-impact-analysis
Test impact analysis (TIA) and regression-suite hygiene. The selector cuts per-PR CI time by running only impacted tests (with always-on safety fallbacks). The tracker, pruner, and curator manage long-term suite signal/noise: which files are eroding in coverage, which tests have stopped catching bugs, which can be folded.
Components
| Type | Name | Description |
|---|---|---|
| Skill | regression-suite-selector | Build-an-X TIA workflow: per-test → source map (coverage- or build-graph-derived) + git diff → impacted ∪ previously-failing ∪ newly-added; safe fallback to full suite. |
| Skill | coverage-debt-tracker | Build-an-X weekly debt ledger across N main runs: falling (line% slid >M pp), stale (flat coverage + high churn), orphan (lost last covering test). |
| Agent | test-suite-pruner | Finds duplicates / tautologies / trivial / dead-signal / orphan tests; recommends removal via PR; refuses to auto-delete. |
| Agent | regression-suite-curator | Quarterly suite-health pass; signal-history-driven keep/fold/delete decisions; never auto-merges. |
Install
/plugin marketplace add testland/qa
/plugin install qa-test-impact-analysis@testland-qaSkills
coverage-debt-tracker
Builds a per-file coverage-debt ledger by walking N runs of historical coverage data - flags files whose line% / branch% has slid more than M pp over the period (`falling`), files whose coverage hasn't moved while their churn has (`stale`), and files that lost their last covering test (`orphan`). Emits a sorted backlog the team can ratchet down: each PR fixes one or two debt items, the rest stays visible. Use when whole-repo coverage is "fine" but specific modules are eroding silently and the team needs a stack-ranked list to fix.
regression-suite-selector
Builds a CI workflow that runs only the subset of tests impacted by a PR's changes - combines a per-test → source-file dependency map (built from coverage profiles or, in build-graph projects, queried from the build system itself like Bazel `rdeps`) with the PR's `git diff --name-only`, then selects the union of (impacted by changed files + previously failing + newly added). Always pairs with a periodic full-suite run so a misconfigured map can't silently shrink coverage. Use when the regression suite is large enough that PR-time CI is the bottleneck and a full run is reserved for nightly / pre-release.
Agents
regression-suite-curator
Action-taking agent that periodically reviews the regression suite's per-test signal/noise history and recommends keep/fold/delete decisions - keeps tests that have caught real regressions, recommends folding two tests into one when they share most setup and assertions, recommends deletion only when a test has been zero-signal AND is duplicated by a higher-coverage test elsewhere AND the coverage map confirms its source paths are exercised by other tests. Outputs a curated diff alongside the rationale per decision. Use as a quarterly suite-health pass - coarser-grained than test-suite-pruner; longer time horizon; signal-history-driven.
test-suite-pruner
Action-taking agent that finds low-signal tests in a suite and recommends removal - flags duplicates (two tests asserting the same thing on the same input), tautologies (assertions that mirror the implementation), trivial tests (a single `expect(true).toBe(true)` shape), and tests that haven't surfaced a real bug in the team's history (zero failures across N main runs while the file they cover has churned). Refuses to delete on its own; always opens a PR or proposes a list. Use as a periodic test-debt sprint tool when the suite has grown faster than its signal value.