Optimizing Test Time, Part 1 – Test Software, or “The Brain”

Test time is integral to almost every test process, and becomes even more important when the testing is automated for high volume production. Shorter test times are desirable because they lead to lower cost and higher productivity. When thousands of devices are being produced every day, every millisecond counts.

Engineers employ a variety of strategies to optimize the test time of their automated test systems, including cutting down the number and types of tests run, tweaking test code to optimize throughput, or even investing in redundant test systems to handle the necessary volume requirements

To optimize test time, there are four key areas which we will look at in this four-part series:

Part 1: Test Software

Test software is essentially the ‘brain’ of the operation. It governs the entire process from start to finish and determines if a device under test is good based on the outcome of the automated test program. A short test time means that the “brain” has to “think” and “act” as fast as possible.

Building from scratch: If you are starting to build an automated test system from scratch, you have the advantage of not being tied to legacy platforms. Choose a computing platform that will serve your purposes well in the long run. This platform should be one that can help you easily utilize the latest processor technology, such as multicore and multithreading.

Multicore enables your test to simultaneously execute more than one application at a time, such as simultaneously running the test code and MS Excel for results collection and analysis. Multithreading helps you to run independent actions in terms of functionality and resource usage in multiple threads to significantly improve performance. Both graphical and traditional programming tools can incorporate support for multicore and multithreading technologies. Graphical programming tools typically help you to take advantage of these capabilities with great ease and limited knowledge. Text-based programming requires higher skills and more tedious work to implement, but often gives you a more comprehensive control.

Using an existing system: If you inherit a test system with existing computer, instruments and software routines already in use, you may want to look into optimizing the test code itself. There are many ways to do this, but here is one systematic suggestion.

First, break the test code into several process stages, such as initialization, setup, calibration, testing, and results then identify stages that are taking too much time. Identify the various functions within the stages and optimize the functions either via improved algorithm or taking out unnecessary codes. Don’t be surprised to find lines of code that were needed in the past but are no longer necessary!

As an example, there may have been a line of code that required the test to wait 50 milliseconds before requesting a response from the instrument. However, due to upgraded instrument hardware or firmware, this waiting time can now be eliminated. And when you are testing thousands of units daily, every millisecond counts.

Up next? Part 2, which covers the second key area of a test system – test instruments, or the ‘muscle’. Subscribe to our blog to receive the entire series in your inbox.