No matter how well constructed, well engineered, and well thought-out a device is, there are always corner cases that can force the device to stumble. Therefore, when scheduling the compliance test, it is important to allocate some time for troubleshooting and debugging potential problems. These problems may not be the obvious ones like signal quality, basic enumeration, or inrush. The problem can be a very subtle failure: for example, the device might fail because it draws too much current on a hub with a suspended port. Or perhaps it has a back-drive failure because the D+ pull up is hardwired. Regardless of the type of failure, it is important to recognize that there may be unforeseen difficulties. Therefore, if it is feasible, testing should be scheduled around these unfortunate possibilities.
Developers should consider the benefits of testing before the ultimate factory-grade product is complete. This can be done internally or through a test lab. MCCI frequently tests devices that are not in their final state. We perform what we call half-tests on devices that may not even have OS drivers yet. While bringing such a device to an actual USB-IF Compliance Workshop may not be worth the time and effort, we strongly advise you to either send your unfinished devices to a certified test lab like MCCI or to test them internally. Ultimately, the time and money you spend on testing early in the development will save you money overall. The cost of running a half-test on a development platform with the silicon that will be in the final product is much less than the cost of re-spinning the silicon later.
Naturally, early testing might not catch everything. There can always be PCB layout changes or changes in the manufacturing BOM that cause unintended results. Last-minute problems are very frequently encountered and can never be completely eliminated. Still, more often than not, early testing and adequate planning to include enough debug time during the final test will greatly alleviate the ravages of any last minute catastrophes that do arise.