Skip to main content
BookintermediatePaid

A Practitioner’s Guide to Software Test Design

by Lee Copeland · Lee Copeland

Copeland's catalogue of test design techniques: equivalence classes, boundary values, decision tables, pairwise combinations, state machines, and use-case tests. After it you can choose a technique deliberately instead of writing test cases by intuition.

Visit resource

This link may earn us a small commission at no extra cost to you. Affiliate disclosure

More resources on Software Testing

WebsiteFree

ministryoftesting.com

Ministry of Testing is a community hub for software testers, offering articles, courses, events (such as TestBash), podcasts, and an active forum with practical resources to learn and improve testing skills, including game testing.

WebsiteFree

Martin Fowler - Testing Articles

Fowler's collected writing on testing, including the test pyramid, unit test definitions, mocks versus stubs, and self-testing code. Reading it gives you the vocabulary and trade-off reasoning most team debates about test strategy actually depend on.

PodcastFree

Test & Code

Brian Okken's long-running podcast on testing Python code, covering pytest features, test design, CI, and the packaging tools around them. Episodes are short and practical, usually walking through one tool or technique at a time.

PodcastFree

AB Testing

Long-running conversation podcast by software quality practitioners Alan Page and Brent Jensen on the Modern Testing principles. Episodes discuss shifting quality ownership to whole teams, agile and lean delivery, DevOps, experimentation and data-driven quality, helping testers and engineering leads rethink the role of testing.

BookPaid

Agile Testing

Crispin and Gregory's account of how testing works on agile teams: the tester's changing role, the agile testing quadrants, and automation strategy. Useful for shifting a team away from a separate downstream QA phase.

BookPaid

The Art of Software Testing

Myers's 1979 classic that framed testing as the process of trying to make software fail rather than confirm it works. Covers test case design, inspections, and the psychology of why developers test their own code badly.

See all Software Testing resources →