The act of comparing the result of a computation, an operation, or execution of a scenario with a predefined expected result. Due to its mechanical and repetitive nature, checking is best performed by a machine, which is why one of the underlying goals of developer testing it to have developers automate as many checks as possible. This is very easy to do at the unit test level, but it gets harder as the scope of the developer tests increases (integration tests become end-to-end tests, for example).

There’s some controversy around this term due to the distinction between checking and testing, the latter of which implies creative challenging work, whereas the former refers to a rather mind numbing activity.

In a majority of cases (yes, there are exceptions), if your testing phase is about comparing the results of the developers’ work with a specification, or “verifying”, then you most likely need to improve your team’s developer testing or train your testers (or both).