# Concurrency / Flaky Test Resources

## Knowledge

- [Paper: "An Empirical Analysis of Flaky Tests" — Luo, Hariri, Eloussi, Marinov (FSE 2014)](https://mir.cs.illinois.edu/lamyaa/publications/fse14.pdf)
  The origin of the standard flaky-test taxonomy: Async Wait (~45%), Concurrency (~20%), Test Order Dependency (~12%), Resource Leak, Network, Time, IO, Randomness, Floating Point, Unordered Collections. Use for: naming a failure by mechanism, and for the canonical fixes per category.
- [Paper: "An Empirical Study of Flaky Tests in JavaScript" — Hashemi et al. (arXiv 2207.01047)](https://arxiv.org/pdf/2207.01047)
  Same taxonomy applied to JS/TS. Async calls dominate; "Platform" (OS/browser variance) is unusually large compared to other ecosystems. Use for: JS-specific priors on where to look first.
- [Paper: "Understanding Flaky Tests: The Developer's Perspective" — Eck et al. (arXiv 1907.01466)](https://arxiv.org/pdf/1907.01466)
  200 flaky tests from Mozilla, categorised by the developers who fixed them. Use for: how practitioners actually triage, and how often "flaky" turns out to be a real production bug.
- [Docs: Playwright — Best Practices](https://playwright.dev/docs/best-practices)
  Web-first assertions, locators over selectors, test isolation. Use for: the intended-by-design way to express a wait.
- [Docs: Playwright — Parallelism and sharding](https://playwright.dev/docs/test-parallel)
  Workers, `fullyParallel`, `test.describe.serial`, worker-scoped fixtures. Use for: reasoning about what is isolated per worker vs. shared globally.
- [Docs: Playwright — Fixtures](https://playwright.dev/docs/test-fixtures)
  Test- vs worker-scoped fixtures, setup/teardown around `use()`, `automatic` fixtures, dependency and teardown ordering. Use for: anything about scope as a sharing decision.
- [Docs: Playwright — Test retry](https://playwright.dev/docs/test-retries)
  Retries, `flaky` status, `testInfo.retry`. Use for: deciding retry policy and reading the flaky report honestly.

## Gaps
- No strong resource yet on *database-level* isolation strategies for parallel E2E (per-worker schema vs. transactional rollback vs. namespaced fixtures). To find — becomes urgent if the per-worker-tenant move (ladder rung 5) gets funded.
- Nothing on flake budgets / quarantine as an operational practice (thresholds, ratchets, who owns the number). Needed before the B-block lesson on retry policy.
