Organization of this tutorial

In contrast to the majority of current software development literature, this tutorial does not employ a single case example used throughout the entire tutorial for two reasons. First, it is my personal preference to pick out specific sections in random order when reading textbooks; continual examples would make it difficult to recapitulate the details. Second, doing without one continual example allowed me to directly include authentic code examples from practice.

This tutorial is organized in three main parts. Part I, Basic Techniques, supplies the fundamentals for the rest of the tutorial and reading in sequential order best meets its purpose as a textbook. Readers already working with JUnit can skim , Automating Unit Tests. Part II, Advanced Topics, is composed of independent chapters, which can be consulted according to the reader's personal need or interest. These topics include persistent objects, concurrent and distributed systems, Web apps, graphical user interfaces (GUIs), and unit testing in different development processes.

Part III consists of appendices, which include JUnit-specific material, useful tips for unit testing in other coding languages, a glossary of terms, and a bibliography with references for further reading.