When doing research on which kinds of programmatic tests
different developers and companies utilize and how they handle
them, I realized that there is no common definition of terms and
concepts. While most sources agree on what is and what is not a
unit test, there are various contradictory definitions of what a
test is, if it is not a unit test. In this blog post I’d like to
present a brief overview of the definitions we are currently
using. Since we steadily try to enhance and refine our
development process and tools, the terms and concepts presented
here are almost certain to change in the future. Please note
that this post is not intended to fully describe all the details
of the different test approaches, but rather to give an idea and
first impression on how we distinguish them. The most basic kind
of programmatic tests, unit-tests, are likely to be the most
commonly used kind of test. They help to determine that a small
piece of code, e.g. a single method or class, behaves as
intended by its developer.