One of the hardest problems in digital circuit design is test pattern generation for a complex device. This is difficult in part because it requires reasoning about how to control a device whose behavior can be extremely complex. Knowledge of the specific operations that the device was designed to perform can help solve this problem. The key observation is that a device’s designed behavior is often far more limited than the device’s potential behavior. This limitation translates into a reduction of the search necessary to achieve planning goals. We describe an implemented program based on this idea.