unit test

To create automated test functions in order to check that software works in
the expected manner. An entire development methodology grew up around this
practice, known as "test driven development" (TDD). The theory was that you
should write unit tests first describing what your program *should* do, and
then write your program afterwards.

Whether test driven development is the best methodology for developing
reliable software remains the cause of holy wars. Detractors claim that
writing and maintaining the tests themselves detracts from the main
purpose and creates unnecessary overhead. Proponents claim that you
can't really know if your program works unless there are tests to
validate against.