1. A computer-implemented method comprising: selecting a feature of an application on a computing device to demonstrate; selecting simulated user inputs that, when input to the application, drive the application to demonstrate the selected feature; driving the application from a first application state to a second application state by inputting a first subset of the simulated user inputs to the application; determining, while the application is in the second application state, that a user has entered one or more actual user inputs, then ceasing to input any further simulated user inputs to the application, and driving the application from the second application state to a third application state by inputting one or more of the actual user inputs to the application; and determining that the user has not entered an further actual user inputs for a predetermining period of time, then returning the application from the third application state to the second application state, and driving the application from the second application state to a fourth application state by inputting a second subset of the simulated user inputs to the application.