A lightweight Java application that receives tests from the test harness, runs them on the implementation being tested, and reports the results back to the test harness. Normally test agents are only used when the TCK and implementation being tested are running on different platforms. When running tests on a platform other than the one running the JavaTest harness, you must use an agent. The JavaTest harness uses three types of agents: