# Test Strategy — Resources

## Core Reading

- [The Practical Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html) — Martin Fowler. The definitive article: pyramid, trade-offs, and practical guidance.
- [Test Pyramid](https://martinfowler.com/bliki/TestPyramid.html) — Martin Fowler. Original bliki entry.
- [The Testing Trophy and Testing Classifications](https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications) — Kent C. Dodds. Diamond/trophy alternative to the pyramid.

## Books

- **Test Driven Development: By Example** by Kent Beck — TDD fundamentals: red-green-refactor, writing tests first.
- **Growing Object-Oriented Software, Guided by Tests** by Steve Freeman & Nat Pryce — Test-first design and mocking strategies.

## Testing Frameworks

- [Jest](https://jestjs.io/) — JavaScript unit testing. Fast, snapshot support, built-in mocks.
- [Vitest](https://vitest.dev/) — Vite-native test runner. Jest-compatible API, ESM, fast.
- [Playwright](https://playwright.dev/) — Cross-browser e2e testing. Reliable, modern API.
- [Cypress](https://www.cypress.io/) — E2E testing for the web. Great DX, time-travel debugging.

## Articles

- [What to Test](https://kentcdodds.com/blog/what-to-test) — Kent C. Dodds. Focus on implementation details vs behavior.
- [Unit Testing Best Practices](https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-best-practices) — Microsoft. Naming, structure, what to mock.
- [Test Double Patterns](https://martinfowler.com/bliki/TestDouble.html) — Martin Fowler. Stub, mock, spy, fake, dummy.

## Videos

- [The Test Pyramid](https://www.youtube.com/watch?v=o0dS02sE_2c) — Martin Fowler (conference talk). Rationale and real-world use.
- [Rethinking the Test Pyramid](https://www.youtube.com/watch?v=z2q5_y-4qy0) — Google Testing Blog. Alternative shapes and when they fit.
- [Jest Tutorial](https://www.youtube.com/watch?v=FgnxcUQ5xho) — Academind. Getting started with Jest.

## Tools

- [Testing Library](https://testing-library.com/) — Test components from the user's perspective. React, Vue, DOM.
- [MSW (Mock Service Worker)](https://mswjs.io/) — Mock API at the network level. No changes to app code.
- [Sinon](https://sinonjs.org/) — Standalone mocks, stubs, spies for JavaScript.

## CI/CD

- [GitHub Actions — Test workflow](https://docs.github.com/en/actions/automating-builds-and-tests) — Run tests on push/PR.
- [Vitest — CI Configuration](https://vitest.dev/guide/ci.html) — Configuring Vitest for CI.
- [Playwright — CI](https://playwright.dev/docs/ci) — Running Playwright in GitHub Actions, etc.

## Podcasts

- [Test & Code](https://testandcode.com/) — Brian Okken. Episodes on testing strategies, TDD, and pytest patterns.
- [Software Engineering Daily — Testing](https://softwareengineeringdaily.com/?s=testing) — Deep dives on testing at scale, flaky tests, and CI pipelines.
- [JS Party — Testing Episodes](https://changelog.com/jsparty) — Panel discussions on JavaScript testing tools and strategies.

## Interactive and Visual

- [Testing Playground](https://testing-playground.com/) — Find the right Testing Library query for any DOM element visually.
- [Playwright Trace Viewer](https://playwright.dev/docs/trace-viewer-intro) — Replay test execution with screenshots, DOM snapshots, and network at each step.
- [Vitest UI](https://vitest.dev/guide/ui.html) — Visual test runner dashboard for browsing and debugging test results.

## Courses

- [Testing JavaScript (Kent C. Dodds)](https://testingjavascript.com/) — Comprehensive course: static analysis through E2E, with real-world projects.
- [freeCodeCamp — Quality Assurance](https://www.freecodecamp.org/learn/quality-assurance/) — Free certification covering unit testing, functional testing, and Chai assertions.
