The Software Testing Course
A ground-up guide to testing modern web applications — from first principles and terminology to test design, automation, CI, and autonomous coverage. Read it in order or jump to the part you need.
- 01
What Software Testing Actually Is (and Isn't)
Part 1 of the Software Testing Course: a working definition of testing, why it's about information rather than proof, and the vocabulary the rest of the series builds on.
June 16, 20263 min - 02
The Testing Vocabulary You'll Actually Use
Part 2 of the Software Testing Course: unit, integration, end-to-end, smoke, regression, flaky, fixture — the terms defined clearly, with the distinctions that matter in practice.
June 19, 20264 min - 03
The Testing Pyramid, and Where It Breaks Down
Part 3 of the Software Testing Course: what the pyramid gets right about test distribution, the 'ice cream cone' anti-pattern, and why modern stacks are pushing toward a 'testing trophy' instead.
June 24, 20264 min - 04
How to Decide Your Test Distribution
Part 4 of the Software Testing Course: turning the pyramid from a picture into a decision — risk-based thinking, what each layer costs and returns, and the heuristic that settles most cases.
June 29, 20265 min - 05
Test Design: Choosing What to Check
Part 5 of the Software Testing Course: the techniques for designing a single test well — equivalence partitioning, boundary values, decision tables, state transitions, and error guessing.
July 1, 20264 min - 06
Exploratory Testing: Structured Improvisation
Part 6 of the Software Testing Course: what exploratory testing is, why it finds bugs scripts miss, and how to do it with enough structure to be accountable.
July 7, 20264 min - 07
Writing a Test Plan That People Actually Use
Part 7 of the Software Testing Course: what belongs in a test plan, what to leave out, and how to keep it a living document instead of shelfware.
July 13, 20264 min - 08
How to Write a Bug Report a Developer Can Act On
Part 8 of the Software Testing Course: the anatomy of a bug report that gets fixed fast — clear title, exact reproduction, expected vs actual, and evidence.
July 17, 20263 min - 09
Building a Regression Suite That Doesn't Rot
Part 9 of the Software Testing Course: how a regression suite grows, why it decays, and how to keep it lean, trusted, and worth running.
July 27, 20264 min - 10
Test Environments and Test Data
Part 10 of the Software Testing Course: why the environment and data your tests run against determine whether the results mean anything.
July 31, 20264 min - 11
Running Tests in CI: What Runs Where
Part 11 of the Software Testing Course: which tests belong on every commit, which belong on merge, and how to keep the pipeline fast and trustworthy.
August 6, 20264 min - 12
Test Coverage: What the Number Does and Doesn't Tell You
Part 12 of the Software Testing Course: what code coverage measures, why 100% doesn't mean 'tested', and better ways to think about how much testing is enough.
August 13, 20264 min - 13
Non-Functional Testing: Performance, Security, Accessibility
Part 13 of the Software Testing Course: the testing that isn't about whether a feature works, but about how well — speed, resilience, security, and accessibility.
August 20, 20264 min - 14
Where Autonomous Testing Fits
Part 14 of the Software Testing Course: how unscripted machine exploration sits alongside unit, integration, scripted end-to-end, and exploratory testing — and what it does and doesn't replace.
August 26, 20264 min - 15
Putting It Together: A Working QA Process
Part 15 of the Software Testing Course: assembling everything from the series into a lightweight QA process a small team can actually run.
September 1, 20264 min