An interpretive language comprises instructions making up part of the first sequence of instructions (a test "script"). The first language comprises a first set of instructions, the first set of instructions causes a first computer system (a "host" in a preferred embodiment) to issue a series of commands to a second computer system (a "target") in order to cause the second computer system to emulate user activity on the second computer system. User activity includes emulating typing text and/or moving a mouse cursor position. The language further comprises a second set of instructions which cause the first computer system to issue a series of commands to the second computer system in order to cause the second computer system to respond to the first computer system with its state. This state includes user interface objects, and applications running in the target, etc. The language further comprises a third set of instructions, the third set of instructions causing the first computer system to issue a sequence of commands to the second computer system to respond in a predefined manner. These instructions indicate that the target computer system is to respond in within a given period of time, listen for further commands, etc. This is useful for repeatable and systematic testing of computer systems having a variety of hardware and software combinations for compatibility testing. Multitasking using "threads" for control of different targets using different test routines is also provided.