Testland
Browse all skills & agents

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-qa
View source

Part 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

TypeNameDescription
Skillregression-suite-selectorBuild-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.
Skillcoverage-debt-trackerBuild-an-X weekly debt ledger across N main runs: falling (line% slid >M pp), stale (flat coverage + high churn), orphan (lost last covering test).
Skilltest-removal-criteriaDecides which tests should stop existing: five removal classes and a four-condition delete gate where every condition must hold. A missing input is a failed condition, and keep is the default verdict.
Agenttest-suite-prunerFinds duplicates / tautologies / trivial / dead-signal / orphan tests; recommends removal via PR; refuses to auto-delete.
Agentregression-suite-curatorQuarterly 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-qa

Skills

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.

test-removal-criteria

Decides which existing tests should stop existing, using five removal classes (duplicate, tautology, trivial, dead-signal, orphan) and a four-condition delete gate where every condition must hold or the verdict reverts to keep. Puts the burden of proof on removal: each deletion carries a written reason, redundant-coverage evidence from a per-test source map, and a named reviewer; a test that has merely never failed is treated as possibly load-bearing, not worthless. Use when a suite has outgrown its signal value and someone is opening a pruning change set that deletes test files; for choosing which tests to RUN per change (not delete) use regression-suite-selector, and to track accumulating low-value coverage over time use coverage-debt-tracker.