1. A method of automatically controlling execution of an application program having a graphical user interface comprising: capturing user input data and images displayed by the graphical user interface during a recording phase of execution of the application program; analyzing the captured user input data and displayed images to generate an execution scenario during the recording phase; generating simulated user input data based on the execution scenario during a playback phase of execution of the application program and inputting the simulated user input data to the application program; performing image analysis on images displayed by the graphical user interface as a result of processing the simulated user input data during the playback phase and captured displayed images from the recording phase; and automatically controlling execution of the application program based at least in part on the image analysis.