While there are many types of testing (for example, acceptance testing, integration testing, and stress testing), this chapter will concentrate on unit testing. There are three reasons for this concentration:
Unit tests are more likely to be language-specific. While other test frameworks can treat code as a black box (for example, a GUI tester), unit tests are usually written using the same language as the system they are testing.
The day-to-day development of a system should include the writing of unit tests. For the audience of this book, unit tests should be the most familiar type.
It is the nature of most scientific and engineering code that a large amount of computation can occur before a comparatively simple, yet previously unknown, answer is produced. Unit testing is the type of testing that is most directly focused on the question, "Is that the right answer?"