qa-testing-strategy

v2026.09.24

Risk-based test strategy for software delivery. Use when defining coverage, setting CI gates, managing flaky tests, choosing test layers, or establishing release criteria.

GitHub
安装命令
npx skhub add vasilyu1983/qa-testing-strategy
Markdown
SKILL.md

QA Testing Strategy

Risk-based quality engineering guidance for modern software delivery. Use this skill to decide what to test, at which layer, with which gates, and how to keep the signal trustworthy.

Start with references/operational-playbook.md for the navigation hub. Use current official sources from data/sources.json when you need vendor or standards guidance.

Scope

  • Create or update a risk-based test strategy
  • Choose a test shape (pyramid, trophy, honeycomb) based on architecture and defect origin
  • Define merge gates, deploy gates, and release evidence — including merge queue interaction
  • Choose the smallest effective layer: unit, component, contract, schema fuzzing, integration, E2E, property-based
  • Make failures diagnosable with artifacts, correlation IDs, traces, and ownership
  • Operationalize suite health: flake SLO, quarantine policy, execution budgets, dashboards

Use Instead

NeedSkill
Implement or debug Playwright suitesqa-testing-playwright
Design API contract suites in depthqa-api-testing-contracts
Debug failing tests or incidentsqa-debugging
Add observability, telemetry, or tracingqa-observability
Test LLM agents or evaluationsqa-agent-testing
Mobile-specific strategy or automationqa-testing-mobile
Security audit or threat-model depthsoftware-security-appsec
CI/CD pipeline design and infraops-devops-platform

Quick Reference

LayerGoalTypical Use
UnitProve logic and invariants fastPure functions, domain rules, validators
ComponentValidate UI behavior in a real browser with narrow scopeUI components, state transitions, accessibility smoke
ContractPrevent breaking changes across service boundariesOpenAPI, AsyncAPI, JSON Schema, Protobuf
Schema fuzzingStress the API contract with generated valid and invalid inputsRequest/response edge cases, parser and validation drift
Property-basedVerify universal invariants across generated input spacesSerialization round-trips, numeric contracts, state-machine invariants, AI-code edge cases
IntegrationValidate real boundaries and dependenciesAPI + DB, queues, adapters, auth flows
E2EValidate thin critical journeysSign-up, checkout, publish, payment, admin recovery
PerformanceEnforce budgets and capacityLoad, stress, soak, latency regression
VisualCatch intentional vs accidental UI changesStable pages, design-system components
AccessibilityCheck for common WCAG 2.2 failures earlyaxe smoke + manual audit plan
SecurityCatch common web/API vulnerabilities earlySAST, DAST smoke, auth and dependency checks

E2E Gate Topology (Default)

Use three distinct E2E scopes instead of one monolithic suite:

  • Smoke: PR gate and fastest feedback on the highest-risk journeys.
  • Targeted batch/spec: local triage and deflake work for one journey, subsystem, or dependency chain.
  • Deploy-gate replay: dependency-chain or critical-journey replay used only when proving release readiness.

Rules:

  • Do not use full local E2E as the first response to a single failing journey.
  • Treat rerun-pass as unresolved flake debt.
  • Promote scope only after the smaller scope is green.

Default Workflow

  1. Clarify scope and risk: critical journeys, failure modes, compliance constraints, and non-functional risks.
  2. Define quality signals: SLOs, budgets, contract checks, accessibility target, and what blocks merge vs deploy.
  3. Map each critical risk to a claim, oracle, layer, environment, build identity, evidence artifact, owner, and expiry. Label it configured, executed, behavior-verified, or release-observed; static analysis, discovery, coverage, and a green build stop before executed behavior.
  4. Choose the smallest effective layer first: unit, component, contract, schema fuzzing, integration, then E2E.
  5. Make failures diagnosable: logs, traces, screenshots, videos, build links, request IDs, trace IDs, and owners.
  6. Operationalize the suite: explicit smoke vs targeted-batch vs deploy-gate scopes, quarantine with expiry, suite budgets, retries with evidence retention, and dashboards. List uncovered critical risks and the next gate instead of treating a targeted pass as universal release proof.

Decision Rules

Need to test: [Change or Risk]
    │
    ├─ Pure business rule or invariant?
    │   └─ Unit test
    │
    ├─ UI behavior or component state in isolation?
    │   └─ Component test in a real browser
    │
    ├─ API compatibility between teams/services?
    │   └─ Contract test
    │
    ├─ API parser/validation edge cases against the schema?
    │   └─ Schema-aware fuzzing + core integration smoke
    │
    ├─ Real dependency boundary or persistence behavior?
    │   └─ Integration test with real DB/queue/service doubles only at external edges
    │
    ├─ User-critical cross-page workflow?
    │   └─ Thin E2E test
    │
    ├─ Universal invariant or property that should hold for all valid inputs?
    │   └─ Property-based test (fast-check / Hypothesis / jqwik)
    │
    └─ Capacity, resilience, or reliability regression?
        └─ Performance, resilience, or synthetic monitoring tests

Principles

  • Prefer the smallest layer that can prove the behavior.
  • Keep pre-merge gates fast: contracts, static checks, unit tests, selective component/integration smoke.
  • Prefer targeted batch reruns locally; reserve full E2E for deploy gates or scheduled regression.
  • Use full E2E only for critical journeys or risks that cannot be proven lower in the stack.
  • Treat flaky tests as reliability defects, not harmless noise.
  • Favor web-first assertions and stable locators over custom waits or brittle selectors.
  • Treat accessibility automation as partial coverage. Pair it with manual checks and inclusive design review.
  • Use telemetry as evidence. Production traces, incidents, and support signals should drive new tests.
  • Use AI for brainstorming and triage only when evidence stays attached. Do not weaken assertions to “heal” tests.
  • Treat AI-authored test oracle quality as a first-class risk, peer to flake debt. AI-generated tests routinely hit high line coverage while passing trivially (hardcoded returns, shallow assertions). Gate them on mutation score, not coverage: a test that cannot fail when the business logic is reverted is not a test.

Core Targets

SignalDefault Target
PR gatep50 <= 10 min, p95 <= 20 min
Mainline health>= 99% green builds/day
Suite flake rate<= 1% weekly
Quarantine policyowner + ticket + expiry, never indefinite
AI-authored test oracle qualitymutation score gate on changed files (line coverage is not a gate); calibrate threshold to the suite, never accept AI tests on coverage alone

Resources

Templates

Property and Metamorphic Contract Tools

From this skill directory, run python3 scripts/property_contract_runner.py --contract assets/property_contract_example.py --seed 20260908 --cases 120 --json; equivalent absolute paths work from any directory. Review the adapter first because the runner imports and executes the Python file and does not sandbox it. It defensively copies case and result values, but adapter global state remains the adapter author's responsibility. Exit 0 passes the sampled contract, exit 1 reports a replayable property failure, and exit 2 reports an invalid adapter or command.

ASCII Flow

Test strategy request
  -> Clarify risks, critical journeys, constraints, and release criteria
  -> Pick smallest proving layer: unit, component, contract, integration, E2E
  -> Define merge gates, deploy gates, evidence artifacts, and owners
  -> Add diagnostics: logs, traces, screenshots, request IDs, and dashboards
  -> Set suite health policy: flake SLO, quarantine expiry, runtime budgets
  -> Review production signals and incidents to evolve coverage

Navigation

  • ## Default Workflow, ## Decision Rules, and ## Principles for the baseline strategy sequence
  • ## Resources and ## Templates for deeper materials
  • ## Related Skills for tool-specific execution handoffs
  • references/reliability-theory-applied.md — Reliability primitives (MTBF/MTTR, availability, FMEA, error budgets) applied to QA testing strategy.

Related Skills

SkillPurpose
qa-refactoringSafe refactoring with behavior preservation
software-code-reviewCode review process and checklists
software-architecture-designSystem design and architecture decisions

Fact-Checking

  • Known bugs, regressions, framework/compiler/runtime footguns, and version-specific crash or workaround guidance must be verified against current primary web sources before being treated as current fact.
  • Use web search or web fetch to verify current external facts, versions, pricing, deadlines, regulations, or platform behavior before final answers.

Learnings Loop

When prior decisions or pitfalls are relevant, consult learnings.consolidated.md if present; use learnings.md only for needed history or as the available fallback. Otherwise skip both.

After applying it, if you encountered a pattern worth remembering, a mistake worth preventing, or a domain fact that surprised you, append one dated bullet to learnings.md via agents-skills-feedback-loop/scripts/append_learning.py. Do not modify SKILL.md itself.

发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

MIT

源路径

frameworks/shared-skills/skills/qa-testing-strategy

默认分支

main

最新提交

8dc5de4

Tree SHA

700bf67