Playwright Regression Testing (TypeScript)
Strategy and best practices for automated regression testing of web applications using Playwright with TypeScript.
Activation: This skill is triggered when working with regression test strategy, test suite selection, test prioritization, CI/CD pipeline testing, flaky test management, test sharding, or optimizing test execution for web applications using Playwright.
When to Use This Skill
- Plan regression suites with risk-based and change-based test selection
- Organize tests into tiers (smoke, sanity, selective, full regression)
- Optimize execution with parallelization, sharding, and time-budget strategies
- Integrate with CI/CD using GitHub Actions pipelines
- Manage flaky tests with quarantine, retry policies, and root cause tracking
- Monitor suite health with execution time, flake rate, and detection metrics
- Select tests after changes using git diff analysis and impact mapping
Do NOT Use For
- Authoring a single UI spec or page-object model (use
playwright-e2e-testing).
- Driving a live browser interactively for debugging (use
playwright-cli).
- Selenium/Java regression suites (use
webapp-selenium-testing).
- API contract testing in isolation (use
api-testing).
Prerequisites
| Requirement |
Details |
| Node.js |
v18+ recommended |
| Playwright |
@playwright/test package |
| TypeScript |
typescript configured in project |
| Browsers |
Installed via npx playwright install |
| Git |
Required for change-based test selection |
| GitHub Actions |
Recommended CI/CD platform |
Quick Reference
Tiers: Smoke (<2min, every commit) → Sanity (<10min, every PR) → Selective (<30min, on merge) → Full (<60min, nightly/pre-release).
Key tags: @smoke, @sanity, @regression, @e2e, @api, @destructive — exactly one per test, never on describe() blocks. Domain-specific extensions (e.g., @a11y in accessibility skills) are allowed alongside, but only one execution tag per test.
CLI: npx playwright test --grep @smoke | --grep @regression | --grep-invert @destructive | --shard=1/4 | --last-failed
For full tier model, regression types table, and tag taxonomy, see references/regression-catalogs.md.
Red Flags
- Treating flaky tests as "fixed" by adding retries or
waitForTimeout — quarantine and root-cause instead.
- Running the full suite on every commit — use tiered selection (smoke on commit, full nightly).
- Quarantining tests silently with no tracking ticket — quarantine must be temporary and owned.
- No change-based selection — running everything regardless of what changed wastes CI budget.
- Ignoring suite-health metrics (rising duration, climbing flake rate) until they block releases.
References
| Document |
Content |
| Regression Strategy |
Tier model (smoke→full), regression types, triggers, directory layout, test tagging and tag taxonomy |
| Regression Selection |
Test selection (change-based, risk-based, historical, time-budget) and test naming conventions |
| Regression Best Practices |
Locator priority, web-first assertions, test independence, test.step() reporting, complete worked example test |
| CI/CD Integration |
GitHub Actions tiered pipeline, sharding, merge reports, Playwright config, performance optimization, CLI reference |
| Flaky Management |
Retry policies, quarantine strategies, detection checklist, suite health metrics, troubleshooting |
Verification
1---2name: playwright-regression-testing3description: Govern Playwright TypeScript regression suites across many tests. Use when asked to plan, select, tier, execute, or optimize suites with risk/change analysis, tags, CI/CD, sharding, flaky-test management, or suite-health metrics; not for authoring one UI spec. Keywords: regression strategy, smoke tests, test selection, CI pipeline, flaky tests, test sharding, impact analysis, git diff.4license: Complete terms in LICENSE.txt5---6
7# Playwright Regression Testing (TypeScript)
8
9Strategy and best practices for automated regression testing of web applications using Playwright with TypeScript.
10
11> **Activation:** This skill is triggered when working with regression test strategy, test suite selection, test prioritization, CI/CD pipeline testing, flaky test management, test sharding, or optimizing test execution for web applications using Playwright.
12
13## When to Use This Skill
14
15- **Plan regression suites** with risk-based and change-based test selection
16- **Organize tests** into tiers (smoke, sanity, selective, full regression)
17- **Optimize execution** with parallelization, sharding, and time-budget strategies
18- **Integrate with CI/CD** using GitHub Actions pipelines
19- **Manage flaky tests** with quarantine, retry policies, and root cause tracking
20- **Monitor suite health** with execution time, flake rate, and detection metrics
21- **Select tests after changes** using git diff analysis and impact mapping
22
23### Do NOT Use For
24
25- Authoring a single UI spec or page-object model (use `playwright-e2e-testing`).
26- Driving a live browser interactively for debugging (use `playwright-cli`).
27- Selenium/Java regression suites (use `webapp-selenium-testing`).
28- API contract testing in isolation (use `api-testing`).
29
30## Prerequisites
31
32| Requirement | Details |
33| -------------- | ---------------------------------------- |
34| Node.js | v18+ recommended |
35| Playwright | `@playwright/test` package |
36| TypeScript | `typescript` configured in project |
37| Browsers | Installed via `npx playwright install` |
38| Git | Required for change-based test selection |
39| GitHub Actions | Recommended CI/CD platform |
40
41---
42
43## Quick Reference
44
45**Tiers:** Smoke (<2min, every commit) → Sanity (<10min, every PR) → Selective (<30min, on merge) → Full (<60min, nightly/pre-release).
46
47**Key tags:** `@smoke`, `@sanity`, `@regression`, `@e2e`, `@api`, `@destructive` — exactly one per test, never on `describe()` blocks. Domain-specific extensions (e.g., `@a11y` in accessibility skills) are allowed alongside, but only one execution tag per test.
48
49**CLI:** `npx playwright test --grep @smoke` | `--grep @regression` | `--grep-invert @destructive` | `--shard=1/4` | `--last-failed`
50
51For full tier model, regression types table, and tag taxonomy, see [`references/regression-catalogs.md`](references/regression-catalogs.md).
52
53---
54
55## Red Flags
56
57- Treating flaky tests as "fixed" by adding retries or `waitForTimeout` — quarantine and root-cause instead.
58- Running the full suite on every commit — use tiered selection (smoke on commit, full nightly).
59- Quarantining tests silently with no tracking ticket — quarantine must be temporary and owned.
60- No change-based selection — running everything regardless of what changed wastes CI budget.
61- Ignoring suite-health metrics (rising duration, climbing flake rate) until they block releases.
62
63---
64
65## References
66
67| Document | Content |
68| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
69| [Regression Strategy](./references/regression-strategy.md) | Tier model (smoke→full), regression types, triggers, directory layout, test tagging and tag taxonomy |
70| [Regression Selection](./references/regression-selection.md) | Test selection (change-based, risk-based, historical, time-budget) and test naming conventions |
71| [Regression Best Practices](./references/regression-best-practices.md) | Locator priority, web-first assertions, test independence, `test.step()` reporting, complete worked example test |
72| [CI/CD Integration](./references/ci-cd-integration.md) | GitHub Actions tiered pipeline, sharding, merge reports, Playwright config, performance optimization, CLI reference |
73| [Flaky Management](./references/flaky-management.md) | Retry policies, quarantine strategies, detection checklist, suite health metrics, troubleshooting |
74
75---
76
77## Verification
78
79- [ ] **Smoke test subset identified** — Tagged `@smoke` tests run in under 2 minutes
80- [ ] **No test duplication** — Each scenario tested exactly once at the appropriate level
81- [ ] **Test isolation verified** — Running tests in random order produces same results as sequential
82- [ ] **Flaky test baseline established** — All tests pass 5/5 consecutive runs