Instead of testing whole programs, test cases are written as small programs which test specific cases of behaviour quickly and with little or no user interaction. Full code coverage in testing is often more desirable than as Austin put it, a flood of programs.