Testing scientific software is highly important,
as it has direct impact on scientific insight.
Most scientific software is not thoroughly tested
or even not tested at all.
Tests can only prove the existence of bugs, not their absence.
Testing should be done as early as possible, as often as possible,
and as automatic as possible.
Test automatisation has dramatic impact on the design
of the code to be tested (e.g., modularity).
Test-driven development turns the usual sequence upside down
and results in high test coverage.
High test coverage by automatic tests increases the trust in software.
Test-driven development leads to tests
that document the code and its specifications.