If you are trying to increase your test system performance while lowering your cost, providing each test socket with a dedicated set of instruments is not a feasible solution. Implementing a parallel test system often does not require any additional hardware investment. With parallel testing, you can share existing instrumentation in the test system among multiple test sockets. Decreasing idle time during a UUT test cycle provides substantial performance improvements without additional hardware costs. In many cases, you can add additional inexpensive instruments to further optimize overall system performance while sharing the more expensive hardware among the test sockets.
Prior to the availability of off-the-shelf test management software, programming the allocation of shared instrumentation among multiple test sockets running in a parallel test system required that you add a large amount of low-level synchronization code to test programs. Critical sections and mutexes often were intertwined with the actual code, making it difficult to program or reuse sections in future test systems.
By implementing parallel test systems that take advantage of many of the built-in features in TestStand, you can effortlessly control the sharing of instruments and synchronize multiple devices under test. You can use synchronization step types and configurable test properties at the individual test level to manage resource sharing between tests in a sequence. The synchronization step types used in test sequences often include lock, rendezvous, queue, notification, wait, and batch synchronization step types. Figure 4 shows how a lock step can be used while testing two UUTs.
Figure 4. Example test sequence uses a combination of lock step types to prevent multiple tests from trying to access the same instrument simultaneously.
You can also use configurable instrument-sharing properties associated with a specific test step rather than a group of tests. Most automated test systems involve some aspect of switching or signal routing. This implementation can span from simple general-purpose relays that control power to a UUT all the way to complex matrix configurations that route thousands of test points to dozens of instruments. When the number of relays to control is small, the test code required to control them is straightforward. As the number of routes increases or spans multiple switch modules, developing software to manage this functionality can be time-consuming and costly.
Switch Executive is an intelligent switch management and routing application. With Switch Executive, you gain increased development productivity by interactively configuring and naming switch modules, external connections, and signal routes. You also increase test code reuse and system performance with switch programming in conjunction with TestStand, LabVIEW, LabWindows/CVI, and Measurement Studio. Figure 5 shows the interaction between TestStand, Switch Executive and your hardware. Ultimately, Switch Executive simplifies switch system configuration and increases test performance, thus lowering your cost to test. For systems developed using TestStand, switch configuration can be included as a property of each test step. The switch programming in these situations is simplified by using the previous configuration of virtual devices, route/route groups in Switch Executive.
Figure 5. TestStand Window for Defining Switching Functionality Using Switch Executive
This method separates switch code from the individual test code modules in an ATE system. As switching hardware changes in the future, your instrumentation test code can stay the same in this manner. The ability to make parallel testing a modular property of tests, rather than an inseparable part of each test, eliminates the complexity of implementing parallel testing in years past.