A fundamental way to test Windows application programs is called UI (user interface) testing. Here a tester exercises the application under test by using it just as a user would — through the application’s use interface. UI testing can be performed manually. The tester launches the application under test, enters some input into the system (typically by typing information into text box controls and clicking on buttons), visually examines what happens to the application, determines a pass/fail result, and records the result (typically in an Excel spreadsheet). Manual testing is absolutely necessary but tends to be very tedious and inefficient. Automated UI testing is more efficient, but ends to be quite difficult. The tester writes a program which simulates a user exercising the application by calling into the Win32 API. This is a set of DLLs that make up the actual Windows operating system, but which can also be accessed by programmers. The image below shows an example of an automated UI test run which uses this Win32 API calling technique.