Device/Driver Test Automation
Updated: January 13, 2009
This Web page provides information about test automation for devices and drivers for the Windows family of operating systems. It provides guidelines for device driver developers, test engineers, IHVs, OEMs, and independent testing organizations to facilitate the automation of certain device and driver tests that previously had to be performed manually.
This information applies for the following operating systems:
Windows 7
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
References and resources discussed here are listed at the end of this Web page.
On This Page
Introduction
There are many tests for devices and drivers that include tasks that require manual human intervention. For example, testing the installation of a USB device requires you to physically insert the device into a USB connector on a computer at the proper point during the test. Similarly, testing device removal requires you to remove the device from the computer. Also, certain power management tests require you to physically press the power button on a computer to wake the system after it has transitioned into a sleep state. Other manual test operations include opening and closing the lid of a portable computer, or docking and undocking a portable computer from a docking station. These manual operations reduce the efficiency of the overall device testing process and introduce the possibility of human error that could adversely affect the test results.
To facilitate automation of such testing scenarios, Microsoft has developed new technology that can be used to perform these manual test operations without human intervention. By integrating this technology into your test procedures, you can make your end-to-end device and driver testing more efficient and reliable. This can help enhance the overall quality of your hardware devices and drivers.
Overview
The key components of this technology are the Device Auto Controller hardware and the Driver Automation Framework.
Device Auto Controller
The Device Auto Controller (DAC) is the component that actually performs the manual test operations automatically. DAC includes a combination of hardware, software, and firmware.
Hardware
DAC is designed to be a universal hardware platform that can be used to automate certain manual test operations, such as installing and removing devices, turning devices on or off, and pressing keys or buttons.
DAC hardware consists of two components, a controller and one or more PODs. The controller is a microcontroller-based piece of equipment that can be programmed to perform various test automation tasks, such as installing and removing a device. These operations can be requested by the test computer or can be triggered based on sensed external voltage levels.
The test computer communicates with the controller via an Ethernet connection. The controller includes eight I/O channels, each of which can connect to a POD. This allows the controller to support up to eight different devices at the same time.
A POD is a module that performs a specific function for a particular type of hardware interface. Each POD connects to an I/O channel on the controller. There are currently three types of PODs:
| • | Switch POD
A switch POD contains electronic switches that are opened and closed by the controller. It can connect and disconnect hardware devices from the test computer by controlling the state of the switches. This simulates manual installation and removal of hardware devices. The USB POD, 1394 POD, and Ethernet POD are all examples of switch PODs. Each of these PODs can be used to test devices of their respective hardware interface. |
| • | Servo POD
A servo POD controls up to three servo motors to perform mechanical movements. These mechanical movements can simulate manual pressing of a keyboard key or a power button, or docking and undocking of a portable computer. |
| • | Power POD
A power POD detects the power state of a computer. |
The DAC hardware is currently available in two configurations:
| • | The Device Auto Controller-Generic version, where the controller is contained in an independent enclosure. The DAC-Generic version controller can connect to any combination of up to eight external PODs. |
| • | The Device Auto Controller-USB Focus version, where the controller is integrated with four USB PODs and two servo PODs in a single enclosure. In addition to the built-in PODs, the DAC-USB Focus version controller can connect to any combination of up to two external PODs. |
In addition, the following configurations of the DAC hardware are in development and will be available soon.
| • | Device Auto Controller-1394 Focus version |
| • | Device Auto Controller-Ethernet Focus version |
These versions of the DAC hardware will have configurations that are similar to the DAC-USB Focus version, except that they will focus on their respective technologies.
The DAC hardware currently supports USB and 1394 devices and Ethernet connections. Other device technologies might be supported in the future. The DAC hardware is supported on 32-bit and 64-bit (x64) editions of Windows XP, Windows Server 2003, and later versions of Windows and Windows Server.
Software
The DAC hardware is programmed using software that is installed on the test computer. This software consists of a DLL (SOM.dll) that defines a COM interface that provides an easy programming interface to applications and scripts. This interface exposes many APIs that can be used to perform various common DAC operations. This interface enables you to develop your own test automation applications or scripts for direct control of the DAC hardware. For more information about the DAC COM interface, see the the DAC User Manual section below.
Firmware
The DAC controller contains firmware that is used to control the PODs connected to the controller. The DAC firmware supports queuing of control commands, which lets you perform test operations even when the test computer is powered down. This is particularly useful for power management testing where the test computer is transitioned into sleep, hibernate, or shut down as part of the test sequence.
The firmware must be programmed into a controller before the controller can be used. The firmware programming is performed by the manufacturer before a controller is shipped to a customer. However, you can update the firmware by connecting a computer's parallel port to the firmware programming port located inside the DAC enclosure. This requires a special programming cable that can be ordered along with the DAC hardware. For more information about ordering DAC hardware, see the Ordering Hardware section below.
Driver Automation Framework
The Driver Automation Framework (DAF) provides a solution for automating the majority of manual test cases for USB and 1394 devices. The framework supports PnP, power management, and other functional device and driver tests. All of the provided tests include robust verification. By using this end-to-end framework, you can improve testing efficiency by eliminating the need for a human to perform the manual steps of these tests. In addition to the increased efficiency, test accuracy and reliability will also be improved by eliminating the possibility of human error.
The framework provides a graphical user interface (GUI) for defining a sequence of test cases that are to be run for a particular device. This lets you build complex test scenarios, such as unplugging a device after it is disabled. It also enables you to integrate and run custom scripts at any point during the test sequence. The sequence of tests cases and scripts can be saved to an XML file that can be used to run the test sequence at a later time.
The framework uses the DAC COM interface to control the DAC hardware as required to automate any manual test cases. This integrates the capabilities of the DAC into the DAF, which provides a complete solution for device test automation.
The framework includes generic predefined XML files for a number of common test scenarios that are ready to use along with corresponding jobs that can be imported into Driver Test Manager (DTM). Running tests using DTM is as simple as scheduling test cases (jobs) to run on test computers. This provides seamless integration to the existing test infrastructure for Windows Logo Program testing of devices using the Windows Logo Kit (WLK). During each test, the framework generates detailed logs of the test which are useful when analyzing the test results. For more information about DTM, see the Windows Logo Kit documentation.
How It All Fits Together
Figure 1 shows an example of how the DAC hardware connects to a test computer and how the DAC and DAF software and the DAC firmware all fit together.

Figure 1 - Device Auto Controller Hardware
The DAC/DAF software package is provided to customers on a CD that is included with the DAC hardware. This software package should be installed on the test computer.
Demonstration Video
A video is available that demonstrates some of the capabilities of this technology.
English (coming soon)
Chinese
Downloads
Coming soon...
Additional documentation, software packages, and firmware updates will be available for download from the Microsoft Connect Web site.
Documents
Coming soon...
The following supporting documents will be available for download from the Microsoft Connect Web site.
DAC Overview
This document provides a brief overview of the DAC functionality.
DAC Quick Start Guide
This document provides step-by-step instructions for how to set up the DAC hardware and connect it to the test computer. It includes sample scripts that you can use to test the hardware.
DAC User Manual
This document provides detailed information to help you understand how to set up and use the DAC hardware and software. It includes information about the functionality that DAC provides, details about the DAC controller and all of the supported DAC PODs and how they all connect together, and how to use the DAC software to program and control the DAC hardware. It includes sample scripts that you can use to test the hardware.
It is recommended that you read the DAC Overview and DAF Overview documents before reading this document.
DAF Overview
This document provides a brief overview of the DAF functionality.
DAF Quick Start Guide
This document provides step-by-step instructions for establishing a couple of test scenarios. The purpose of this document is to help the user understand the power of this technology for automating test scenarios. It is not intended to provide in-depth details of the DAF features.
DAF User Manual
This document provides detailed information to help you understand how to use DAF to automate your device and driver tests. It includes information about the functionality that DAF provides, how to use the DAF GUI and the DAF command line tool to create automated tests, and details about all of the DAF GUI menu commands.
After reading this document you will be able to use DAF to create, edit, modify, and delete automated tests, and you will understand how to create tests that meet your specific testing requirements.
It is recommended that you read the DAC Overview and DAF Overview documents before reading this document.
Software
Coming soon...
The following software package will be available for download from the Microsoft Connect Web site.
DAC/DAF Software Package
This software package contains the latest version of all of the DAC and DAF software. This software package should be installed on the test computer.
Note: A copy of the DAC/DAF software package is also provided to customers on a CD that is included with the DAC hardware.
Firmware
Coming soon...
Updates to the DAC controller firmware will be available for download from the Microsoft Connect Web site.
Note: The firmware is preloaded by the DAC hardware manufacturer before a controller is shipped to a customer.
Ordering Hardware
Coming soon...
Ordering Procedure Guidelines for ordering DAC hardware will be made available shortly.
Figures 2 through 8 are images of the various DAC hardware components that will be available for purchase.

Figure 2 - Device Auto Controller-Generic version controller

Figure 3 - Device Auto Controller-USB Focus version controller
with built-in PODs

Figure 4 - USB POD

Figure 5 - 1394 POD

Figure 6 - Ethernet POD

Figure 7 - Servo POD

Figure 8 - Power POD
Support
Support Forum
Coming soon...
FAQ
What software is required to update the firmware on the DAC controller?
To update the firmware, you will need the ChipBlasterAVR software, which is available for purchase from various online vendors such as HP Info Tech
.
Feedback
Send questions and feedback to DACSupp@microsoft.com.
Resources
Coming soon...
Note: Features discussed on this site are subject to change. Some may not be included in the final product due to marketing, technical, or other reasons.