1. TestStand Architecture
The TestStand architecture is comprised of five main components – The TestStand Engine, Process Models, Sequence Editor, Operator Interface, and Module Adapters.
Figure 1: NI TestStand Test Management Software Architecture
The center of the NI TestStand architecture is the NI TestStand Engine, a powerful multithreaded test engine with complete and extensively documented API. By communicating with the NI TestStand Engine, the module adapters provide an open language interface to automate tests written in any language. The process models provide superior modularity between the test code and the system level functions that must be performed. The Sequence Editor provides an easy-to-use, powerful development environment for test sequences. Lastly, the operator interfaces are provided in source code in multiple programming languages for rapid customization to match your exact needs.
2. Why a Modular Test Software Architecture
Designing efficient test systems requires a modular software architecture that decouples the different components of the test. This is key to developing test systems faster and more cost-effectively.
The Test Management Software (TestStand) layer of the modular test software architecture is responsible for directing the execution of the entire test system, as well as the components of the test system that are common for every type of device being tested. For more information on how TestStand fits into the overall modular test software architecture, refer to Developing a Modular Test Software Architecture with LabVIEW & TestStand.
3. Components of the TestStand Architecture
At the core of the TestStand architecture is the TestStand engine, which directs all the other parts of the NI TestStand architecture. The TestStand Engine is essentially a set of libraries that export an ActiveX/COM API. The TestStand engine handles test management tasks such as sequencing, looping, limit checking, data allocation and user management. The engine is optimized for performance and designed for maximum flexibility and long-term compatibility.
The TestStand API gives developers the ability to perform any operation on the NI TestStand Engine programmatically through an ActiveX API by using the more than 1,400 exported functions.
NI TestStand allows you automate test code written in virtually any programming language through its module adapters. The module adapters provide an open language interface between the NI TestStand Engine and your test code.
By calling code in different languages, you are able to reuse any existing legacy code as well as take advantage of newer technologies. Certain module adapters (like LabVIEW, LabWindows/CVI and .NET) even allow you to automatically create code templates and debug code directly from TestStand in the programming language’s development environment.
Testing a device requires more than just executing a set of tests. Usually, the test system must perform a series of operations such as identifying the unit under test (UUT), logging results, and generating a test report. The set of such operations and their flow of execution are called a process model. The process models provide an additional layer of modularity between the test code and these system level functions.
NI TestStand ships three process models, which can be used as is or fully customized. The Sequential process model can be used for testing one unit at a time, while the Batch and Parallel process models use the NI TestStand multithreading functionality to test more than one unit at the same time.
The TestStand Sequence Editor is the development environment for TestStand and provides test engineers all the functionality and tools needed to develop the most sophisticated automated test systems. The Sequence Editor in essence is a user interface that exposes the functionality of the TestStand Engine by utilizing the TestStand API.
The Sequence Editor allows developer to write, debug and run test sequence. It and also includes a utility to build deployment packages to ease the distribution of test sequences, code modules and operator interfaces. Figure 2 shows the Sequence Editor displaying a test sequence written in LabVIEW.
Figure 2: NI TestStand Sequence Editor
An operator interface is a customizable user interface for NI TestStand that can be used to execute and debug test sequence files created in the Sequence Editor. Operator Interfaces, like the Sequence Editor, are essence is user interfaces that expose the functionality of the TestStand Engine by utilizing the TestStand API.
The operator interface is typically used on a manufacturing floor or if you need to deliver a custom look and feel to your test or validation system. TestStand operator interfaces use the NI TestStand User Interface Controls to facilitate development by fully implementing common features such as Sequence File Display and Execution tracing. NI TestStand includes ready-to-run operator interfaces written in LabVIEW (Figure 3), LabWindows/CVI, C#, VB, and VB .NET.
Figure 3: NI TestStand Operator Interface written in LabVIEW