• display and interact with the tester using the symbols employed in the source code; • step through code instruction-by-instruction; • set watch points on variables; • set break points; • maintain screen displays of the source code during test execution