Rather than using the APIs that programmers use to manipulate the system,
we build up a set of functions and utilities that make use of those APIs and that
make the tests more convenient to write and easier to read.
These functions and utilities
become a specialized API used by the tests.