1. One or more computer readable media having stored thereon a plurality of instructions to test a user interface of a program, the plurality of instructions, when executed by one or more processors, causes the one or more processors to: access test data, the test data including a plurality of test steps, each test step describing at least a part of a test to be performed on the user interface; determine, for each of the plurality of test steps, one or more application program interface (API) methods to invoke to carry out the part of the test, the determination being based at least in part on the test data and on methods supported by the API; invoke each of the one or more API methods to carry out the part of the test.