To perform a test on an application the operator needs to trigger the functionality that is to be checked and optionally feed the application with some data.
For non-interactive applications the functionality is usually determined by the configuration of the program (be it a separate configuration file or a set of command line arguments passed when starting the application) and the data is usually just a set of input files for the application declared within the configuration.
This becomes harder when considering interactive applications–here the user can influence the algorithm by making runtime decisions. Tested functionality can be triggered by performing a set of point and click actions on the user interface. Also the optional data may be created or fed using graphical means. Such situation implies there need to be ways to perform the above mentioned tasks. The following paragraphs describe some of them.