A blog series

Testing From Zero: What, Why and How

Testing from the first test to a team strategy: the shapes of a test suite, unit tests and test doubles, UI tests with Testing Library, API and integration tests, end-to-end tests with Playwright, and TDD, property-based and mutation testing. Every example was run.

Started 
2026
Lessons 
6
Reading 
~1 h

Contents

Every lesson has the same steps: what it is, how it works, a real example, common mistakes, then interview questions with answers you can say out loud.

  1. Lesson 00Why We Test, and the Shapes of a Test SuiteWhat tests prove and do not prove, the pyramid, trophy and honeycomb as models, what to test, a first node:test run, and bad tests.12 min
  2. Lesson 01Unit Tests and Test DoublesArrange-act-assert, stubs, mocks, spies and fakes, fake timers, async errors, test isolation, and why mocking your own internals hurts.13 min
  3. Lesson 02Testing UI Components with Testing LibraryQueries by role, user-event, async UI, mocking the network with MSW, forms and error states.13 min
  4. Lesson 03Integration and API TestsTesting an Express API in-process, test database strategies, contracts, webhooks and queues.15 min
  5. Lesson 04End-to-End Tests with Playwright, and Fixing Flaky TestsPlaywright locators, auto-waiting, traces and isolation, with four flaky tests reproduced and fixed.17 min
  6. Lesson 05TDD, Property-Based Testing, Mutation Testing and a Team StrategyA TDD kata, fast-check shrinking, Stryker mutation testing, coverage, and a one-page team test strategy.19 min

Glossary

15 terms used in this series. Inside any lesson, hover or tap a dotted term to see its meaning without leaving the page. Browse all terms →