Automated extensible user interface testing supports testing of a user
interface of a program. Test data is accessed, the test data including
multiple test steps. Each test step describes at least a part of a test
to be performed on the user interface. For each of the multiple test
steps, one or more application program interface (API) methods to invoke
to carry out the part of the test is determined. This determination is
based at least in part on the test data and on an identification from the
API of methods supported by the API. Each of the one or more API methods
is then invoked to carry out the part of the test. Verification can be
performed to ensure, for example, that specified files were created, or
registry values were changed, or user interface elements appear and
exist.