For each major class C or composite hierarchy of classes in a Java program the programmer should write a test class TestC including a test method that evaluates each publicly visible operation of C on appropriate sample data values (both instances of C and the method arguments). This process is described in much more detail in Section 1.8.