TestStand includes several tools that facilitate modular test system development.
TestStand Sequence Editor
The TestStand Sequence Editor is an application program in which you create, edit, execute, and debug sequences. The sequence editor provides access to all TestStand features, such as step types and process models, and features debugging tools familiar to other ADEs. The debugging tools include setting breakpoints; stepping into, out of, or over steps; tracing through program executions; displaying variables; and monitoring variables and expressions during executions. You can use the sequence editor to start multiple concurrent executions. You can execute multiple instances of the same sequence, or you can execute different sequences at the same time. Each execution instance has its own execution window. In trace mode, the execution window displays the steps in the currently executing sequence. If the execution is suspended, the execution window displays the next step to execute and provides debugging options.
TestStand Operator Interfaces
TestStand includes several operator interfaces, as shown in Figure 2. Each operator interface is a separate application program developed in LabVIEW, LabWindows/CVI, Microsoft Visual Basic .NET, C#, or C++ (MFC), and is available in both source and executable formats. The operator interfaces are fully customizable. Like the sequence editor, you can use the operator interfaces to start multiple concurrent executions, set breakpoints, and single-step. However, you cannot modify sequences in operator interfaces, and the operator interfaces do not display sequence variables, sequence parameters, step properties, and so on. The source code for the operator interfaces provides a starting point for customizing the existing operator interfaces or creating your own operator interface.
Figure 2. An Example of a TestStand Operator Interface
TestStand User Interface Controls
The TestStand User Interface (UI) Controls are a collection of ActiveX controls for creating custom user interfaces in TestStand. These controls simplify common user interface tasks, such as displaying sequences and executions, and facilitate the quick generation of complete, full-featured operator interfaces. You can use these controls in any programming environment that can host ActiveX controls.
The TestStand API is a set of DLLs that are exported through an ActiveX automation server. The sequence editor and TestStand UI Controls use the TestStand API, which you can call from any programming environment and that provides access to ActiveX automation servers, including code modules you write in LabVIEW, LabWindows/CVI, and Visual Studio. All TestStand operations, including sequence execution and development, user management, and report generation, can be controlled programmatically using the TestStand API.
Variables and Properties
TestStand stores data values in variables and properties. Variables are properties you can freely create in certain contexts. You can have variables that are global to a sequence file or local to a particular sequence. You can also have station global variables, which have values that persist across different executions and even across different invocations of the sequence editor or operator interfaces. The TestStand Engine maintains the value of station global variables in a file on the computer on which it is installed. You can use TestStand variables to share data between tests written in different programming languages, even if the languages do not have compatible data representations. You can pass values you store in variables and properties to code modules. You can also use the TestStand API to access variable and property values directly from code modules. Each step in a sequence can have properties. For example, a step might have a floating-point measurement code property. The type of step determines its set of properties.
Report and Database Configuration Wizards
The report and database configuration wizards provide easy modification of the format and data of test results. Use the report configuration wizard to select common report formats, such as HTML, ASCII, XML, and ATML, or select any database with an ActiveX Data Object interface. The target structure and data are completely customizable from the wizard. Additionally, multi-UUT tests can be compiled into a single report or separated into individual reports.
User Management Wizard
Use the user management wizard to control the privilege level of any user. You can add or remove users from a list that is global to an entire station. You can quickly generate users from a set of common profiles, such as operator, developer, and administrator.
TestStand Deployment Utility
The TestStand Deployment Utility is a wizard that simplifies test deployment by determining dependencies for test sequences and code modules. You can also build an installation kit that makes distribution to several systems easy. The installation kit can include National Instruments drivers, such as NI-DAQmx, NI-488, and NI-VISA, as well as run-time engines, including LabVIEW and LabWindows/CVI. With the distribution kit, you can also deploy user profiles, station globals, and station settings.
TestStand installs a sequential model, a parallel model, and a batch model. Each model includes functionality for report generation, database logging, flow control, and multi-UUT or single-UUT testing. Additionally, the supporting code module source is provided with the process models. The source code provides a starting point for customizing existing process models or creating your own process models.
TestStand ships with a large set of example sequences and code modules that cover topics such as controlling parallel executions, dynamic user management, report modification, database customization, and customizing sequences. The examples are an excellent resource for learning the TestStand API. Additionally, examples are implemented in multiple ADEs for easier adoption by developers with differing backgrounds.