During the development of a hardware device, a solid test procedure provides firm ground on which to base design changes. A hardware programmer is a PC software application that communications with the device, and which automates testing, as well as extending the technicians interaction with the device to the monitor, keyboard and mouse of a Windows PC.
Hardware programmers are script-based, offering clients the flexibility of designing their own tests without any assistance from the software developer. Test scripts and test results can be included in the formal quality assurance documentation required for product certification.
Tests can be grouped together and run en-masse. Test groups can be run overnight, and results can be stored on the local machine or uploaded to a central database or server.
Hardware programmers are often designed at the same time as the PCB prototype (or "jig"), and connection to the device is through the richest communication protocol that the device exposes, for example, USB or RS-232.
An off-shoot of hardware programmer development is a robust library that will interface a Windows PC to the device, and this library is in the form of a DLL or a .NET module. This library can be reused in the software that accompanies the production device.
See also
Software Development - Windows Software.