Start here · Essential guide
Software Testing Concepts Every Engineer Should Know
A plain overview of software testing: why we test, what a test actually checks, and how unit, integration and system levels fit together in a project.
Software Practice
Checking that software works and keeping shared code healthy.
Start here · Essential guide
A plain overview of software testing: why we test, what a test actually checks, and how unit, integration and system levels fit together in a project.
What continuous integration means, how a simple pipeline builds and tests each change automatically, and what to watch for when setting one up for a team.
A practical approach to reviewing a colleague's change: what to check, in what order, and how to word comments so they are clear, kind and easy to act on.
How testing combined components differs from testing single units, what integration and system tests each catch, and when it is worth using each level.
How to read review comments calmly, ask good clarifying questions, respond to each point and disagree constructively without damaging working relationships.
What test coverage numbers measure, what they cannot tell you about test quality, and how to use coverage as a helpful guide without chasing a target.
An introduction to the red-green-refactor cycle of test-driven development, the benefits people claim for it, and situations where it can be a poor fit.
How to plan bench tests for a physical prototype, state what you expect, record results carefully and change one variable at a time to learn what matters.
What a unit test is, how to structure one with arrange, act and assert, and how to choose cases to test, using small illustrative functions you can follow.
The parts of a reproducible bug report, from a clear title and steps to expected and actual results, and why each saves the person fixing it time.
Related topics