QA Testing
Use this skill to design or review classic software QA and automated testing systems. Treat testing as an engineered feedback system: map risks, choose the smallest reliable checks with enough fidelity, place them in the right development/release stage, and keep failures actionable.
Core Rule
Do not start from framework, coverage target, or E2E suite size. First clarify user-visible behavior, risk, price of failure, deterministic contracts, required fidelity, CI/CD stage, ownership, and the action expected when a check fails.
Hierarchy And Handoffs
This skill owns risk-based verification for classic software: what evidence is needed,
at which test layer, in which environment, and what happens after a failure. Use
$software-engineering for the broader codebase, maintainability, build, dependency,
or migration decision that the tests support. Use $system-design when contracts,
topology, or failure semantics are still undecided.
For LLM or agent behavior, graders, traces, and release evaluation use
$agent-llm-evals; for computer vision task metrics, visual error analysis,
calibration, robustness, and model-release evidence use $computer-vision-evaluation;
for LLM/RAG/agent security testing use $genai-security-testing. Do not force those
nondeterministic or model-quality concerns into a classic test-pyramid decision.
Keep general verification strategy here; use the frontend or language backend owner
for local test runners, $database-engineering for engine behavior and plan diagnosis,
and $platform-devops-engineering for infrastructure execution. Pass the risk,
fixture, expected outcome, environment limits, and failure evidence to the owner.
Reference Routing
Read only the references needed for the current task.
- For the topic map and reference index, read
references/00_README.md.
- Always start with
references/01-testing-strategy.md for broad QA/test strategy.
- For test pyramid, test size/scope, E2E cost, and feedback-loop placement, read
references/02-test-pyramid-and-feedback-loops.md.
- For unit tests, behavior testing, public APIs, state over interactions, DAMP, coverage caveats, and maintainability, read
references/03-unit-tests.md.
- For test doubles, mocks, stubs, fakes, contract tests, and state-vs-interaction decisions, read
references/04-test-doubles.md.
- For integration, contract, system, E2E, configuration, load, exploratory, and larger tests, read
references/05-integration-and-larger-tests.md.
- For presubmit, post-submit, nightly, release-candidate, staging, canary, feature flags, rollback, and production quality gates, read
references/06-ci-cd-quality-gates.md.
- For reusable templates and checklists, read
references/07-checklists-and-templates.md.
- For data or infrastructure fixtures, incremental/full comparisons, SQL regressions, and restart-state evidence, read
references/data-infrastructure-and-recovery-checks.md.
Workflow
- Classify the request:
- New QA strategy: read
01, then 02, 06, and topic-specific files.
- Existing test-suite review: read
01, 02, 03, 04, 05, and 06.
- Unit test implementation/review: read
03, and 04 if doubles are involved.
- Integration/E2E strategy: read
05, then 02 and 06.
- CI/CD or release gate design: read
06, then 02 and 05.
- Flaky or slow suite diagnosis: read
02, 05, and 06.
- Identify blocking unknowns. Ask only when missing context changes the decision; otherwise state assumptions.
- Map risks to quality layers: static checks, unit tests, contracts, integration, larger tests, exploratory testing, monitoring, and production feedback.
- Prefer the smallest reliable check with enough fidelity. Escalate to broader tests only for risks lower layers cannot catch.
- Make recommendations operational: owner, CI stage, data/setup, assertion, failure action, and maintenance loop.
- Mark any idea not grounded in the references as
external extension.
Output For New QA Strategy
Include:
- Behavior and risk statement.
- Goals and antigoals.
- Price of failure and priority risks.
- Test pyramid proposal.
- Deterministic checks: static, unit, contract, integration, and larger tests.
- Test data and environment plan.
- CI/CD placement: local, presubmit, post-submit, nightly, release candidate, canary, production.
- Release thresholds, rollback criteria, monitoring, and feedback loop.
- Ownership, maintenance plan, risks, and open questions.
Output For Review
Lead with risks and missing decisions:
- Critical quality risks.
- Missing or weak behavior/risk framing.
- Test pyramid imbalance or E2E overreach.
- Brittle unit tests, over-mocking, stale fakes, or weak contract coverage.
- Integration, configuration, load, environment, or ownership gaps.
- CI/CD stage mismatches, flaky blocking checks, or unclear failure actions.
- Concrete fixes and validation steps.
Quality Bar
- Do not call a test strategy complete without risk mapping, layered checks, CI placement, ownership, and production feedback.
- Do not call unit tests maintainable if they test private implementation details or brittle interactions instead of behavior and state.
- Do not rely on E2E tests when smaller tests can catch the same risk faster and more clearly.
- Do not keep flaky tests in blocking paths without owner, classification, and remediation plan.
- Do not treat coverage percentage as proof that meaningful behavior is tested.
- Do not attribute detailed practices to a publication without inspected source text or a verified source-backed extract; distinguish the bounded additions in
references/00_README.md from complete source coverage.
1---2name: qa-testing3description: Use when designing, reviewing, validating, debugging, or improving classic software QA strategy and automated test suites. Trigger for autotests, unit tests, integration tests, contract tests, end-to-end tests, test pyramid decisions, flaky tests, test doubles, mocks, fakes, stubs, test coverage, test maintainability, CI/CD quality gates, release validation, exploratory testing, and production feedback for non-LLM software systems.4---56# QA Testing78Use this skill to design or review classic software QA and automated testing systems. Treat testing as an engineered feedback system: map risks, choose the smallest reliable checks with enough fidelity, place them in the right development/release stage, and keep failures actionable.910## Core Rule1112Do not start from framework, coverage target, or E2E suite size. First clarify user-visible behavior, risk, price of failure, deterministic contracts, required fidelity, CI/CD stage, ownership, and the action expected when a check fails.1314## Hierarchy And Handoffs1516This skill owns risk-based verification for classic software: what evidence is needed,17at which test layer, in which environment, and what happens after a failure. Use18`$software-engineering` for the broader codebase, maintainability, build, dependency,19or migration decision that the tests support. Use `$system-design` when contracts,20topology, or failure semantics are still undecided.2122For LLM or agent behavior, graders, traces, and release evaluation use23`$agent-llm-evals`; for computer vision task metrics, visual error analysis,24calibration, robustness, and model-release evidence use `$computer-vision-evaluation`;25for LLM/RAG/agent security testing use `$genai-security-testing`. Do not force those26nondeterministic or model-quality concerns into a classic test-pyramid decision.2728Keep general verification strategy here; use the frontend or language backend owner29for local test runners, `$database-engineering` for engine behavior and plan diagnosis,30and `$platform-devops-engineering` for infrastructure execution. Pass the risk,31fixture, expected outcome, environment limits, and failure evidence to the owner.3233## Reference Routing3435Read only the references needed for the current task.3637- For the topic map and reference index, read `references/00_README.md`.38- Always start with `references/01-testing-strategy.md` for broad QA/test strategy.39- For test pyramid, test size/scope, E2E cost, and feedback-loop placement, read `references/02-test-pyramid-and-feedback-loops.md`.40- For unit tests, behavior testing, public APIs, state over interactions, DAMP, coverage caveats, and maintainability, read `references/03-unit-tests.md`.41- For test doubles, mocks, stubs, fakes, contract tests, and state-vs-interaction decisions, read `references/04-test-doubles.md`.42- For integration, contract, system, E2E, configuration, load, exploratory, and larger tests, read `references/05-integration-and-larger-tests.md`.43- For presubmit, post-submit, nightly, release-candidate, staging, canary, feature flags, rollback, and production quality gates, read `references/06-ci-cd-quality-gates.md`.44- For reusable templates and checklists, read `references/07-checklists-and-templates.md`.45- For data or infrastructure fixtures, incremental/full comparisons, SQL regressions, and restart-state evidence, read `references/data-infrastructure-and-recovery-checks.md`.4647## Workflow48491. Classify the request:50 - New QA strategy: read `01`, then `02`, `06`, and topic-specific files.51 - Existing test-suite review: read `01`, `02`, `03`, `04`, `05`, and `06`.52 - Unit test implementation/review: read `03`, and `04` if doubles are involved.53 - Integration/E2E strategy: read `05`, then `02` and `06`.54 - CI/CD or release gate design: read `06`, then `02` and `05`.55 - Flaky or slow suite diagnosis: read `02`, `05`, and `06`.562. Identify blocking unknowns. Ask only when missing context changes the decision; otherwise state assumptions.573. Map risks to quality layers: static checks, unit tests, contracts, integration, larger tests, exploratory testing, monitoring, and production feedback.584. Prefer the smallest reliable check with enough fidelity. Escalate to broader tests only for risks lower layers cannot catch.595. Make recommendations operational: owner, CI stage, data/setup, assertion, failure action, and maintenance loop.606. Mark any idea not grounded in the references as `external extension`.6162## Output For New QA Strategy6364Include:6566- Behavior and risk statement.67- Goals and antigoals.68- Price of failure and priority risks.69- Test pyramid proposal.70- Deterministic checks: static, unit, contract, integration, and larger tests.71- Test data and environment plan.72- CI/CD placement: local, presubmit, post-submit, nightly, release candidate, canary, production.73- Release thresholds, rollback criteria, monitoring, and feedback loop.74- Ownership, maintenance plan, risks, and open questions.7576## Output For Review7778Lead with risks and missing decisions:7980- Critical quality risks.81- Missing or weak behavior/risk framing.82- Test pyramid imbalance or E2E overreach.83- Brittle unit tests, over-mocking, stale fakes, or weak contract coverage.84- Integration, configuration, load, environment, or ownership gaps.85- CI/CD stage mismatches, flaky blocking checks, or unclear failure actions.86- Concrete fixes and validation steps.8788## Quality Bar8990- Do not call a test strategy complete without risk mapping, layered checks, CI placement, ownership, and production feedback.91- Do not call unit tests maintainable if they test private implementation details or brittle interactions instead of behavior and state.92- Do not rely on E2E tests when smaller tests can catch the same risk faster and more clearly.93- Do not keep flaky tests in blocking paths without owner, classification, and remediation plan.94- Do not treat coverage percentage as proof that meaningful behavior is tested.95- Do not attribute detailed practices to a publication without inspected source text or a verified source-backed extract; distinguish the bounded additions in `references/00_README.md` from complete source coverage.