This is a software-only demo that illustrates the benefits of testing multiple units under test (UUTs) simultaneously using one set of shared instruments. The example performs the same set of tests on four units using a sequential, parallel, and auto-scheduled approach, then displays a comparison of the total test time for each approach.
The demo demonstrates testing four Android smart phones using NI TestStand. Four different tests are run on each phone:
Power consumption test
Audio quality test
Video quality test
These tests are all simulated in software, but in a real-world application, each would utilize a different test instrument. For this reason, a particular test may only be run on one unit at any given time since the same instrument is required to run a particular test on each UUT.
This example demonstrates the following approaches for testing:
Sequential Testing. Each phone is tested sequentially. This is the simplest approach, but it takes the longest amount of time. Since each instrument runs only one of the four tests, each test instrument is left unused while the other tests are executing. Rather than being idle, these instruments could be used to test one of the other phones.
Parallel Testing. The phones are tested simultaneously, each running in a separate TestStand execution. This approach uses the parallel process model to automatically handle the creation and management of these executions. This approach yields a performance improvement over testing sequentially. However, because of the shared instruments, we observe a pipeline effect: since all tests are executing in the same order, each test socket sits idle until the previous execution is done using each instrument.
Auto Scheduled Testing. The four phones are tested in parallel using the auto schedule feature of TestStand, which changes the ordering of the test steps to optimize instrument usage. The Auto schedule step defines multiple test sections which may be executed in any order. After a section is complete, TestStand finds another section that can be executed based on instrument usage.