Variant Manager — Documentation

← Documentation

Variant Manager — user guide

Version 1.2.0 · Part number BR101-VM-LIC-1 · Interface in English and Spanish

Variant Manager keeps each part number's (variant's) test values outside the NI TestStand sequence. One sequence serves the whole product family: the sequence defines the test and Variant Manager keeps, per variant, the step limits and the variable values. At run time, TS Var Loader applies the values of the chosen variant. The sequence is never written.

Screenshots use the synthetic BDB-100 sequence (a demo product, no customer data).

1. Install

Variant Manager needs two installers on the same station, in this order:

  1. Bravo-101 ATE Framework (download the 1.2.0 MSI, Windows x64). It is the background service Variant Manager talks to; without it the app does not start. It also installs TS Var Loader, the component that applies the values inside TestStand.
  2. Variant Manager (download the 1.2.0 MSI, Windows x64). It's also on the product page.

Requirements: 64-bit Windows 10 or 11, NI TestStand 2025 and TPM 2.0 (the license and the local database encryption are tied to it). The TestStand 2022 package is not published: write to us before you buy if you need it.

There are no files to copy by hand. For reference, the loader lives at C:\Program Files (x86)\B101\AteFramework\B101.Ts.Var.Loader.dll.

2. First sign-in

Variant Manager asks you to sign in. On first launch you create the administrator account; there is no default user or password. Then create one profile per team member: the change history records who made each change, and that only helps if everyone signs in with their own account. Accounts are shared with the other ATE Framework apps.

Continue as guest opens the app read-only: you see everything, you edit nothing. Useful for quality, technicians and audits.

Language: Session › Language. The change applies after you sign in again.

3. The flow in four stages

  1. Register the TestStand sequence as a product.
  2. Choose which properties to manage; Variant Manager builds the tree of steps and variables.
  3. Create one variant per part number and edit only what differs.
  4. From TestStand, one step calls TS Var Loader with the variant and the loader applies the values at run time.

4. Register a sequence

In the rail, Products › Add product (+). Type the product name, pick the .seq file with Browse… (the regular Windows dialog) and press Add and register. Variant Manager reads the sequence and builds the tree: sequence › step group › step › property, plus the container and file-global variables.

The step tree read from BDB100_FCT.seq, with the limits exactly as they are in TestStand
The step tree read from BDB100_FCT.seq, with the limits exactly as they are in TestStand

Right after registering, the product shows "!" and the variant says "No step parameters are enabled". That is expected: you still have to choose what to manage. On the product, Edit › Properties check the root node (everything) or apply a template ("limits" keeps only the test steps' limits) and Save. The table appears.

The sequence is read-only for Variant Manager: it reads it to build the tree and never writes to the .seq.

5. What version 1.2.0 manages

Step parameters (Step parameters tab; columns Sequence / Step · Source · Comp · Low · High · Units):

  • Numeric Limit and Multiple Numeric Limit: comparison, low, high and units per measurement, read from the step's limit fields. If the limit is an expression evaluated at run time, the expression is shown.
  • String Value: the expected text and its comparison.
  • Pass/Fail: no limits; its source is shown.

Container parameters (Container parameters tab; columns Container / Variable · Type · Value · Description): file-global and container variables of type number, string, boolean, array and container. The variable's TestStand comment is shown as its description. An empty variable is flagged "missing".

Container parameters: Product.* and Settings.* with type, value and description
Container parameters: Product.* and Settings.* with type, value and description

You do not need to turn limits into variables or maintain INI files or Excel sheets: the fields it reads are the ones TestStand already has.

6. Variants

Every product starts with the BASE variant, which keeps the values as they come from the sequence and cannot be deleted. For a new part number, open a variant's menu (right-click or "…") and choose Duplicate: the copy starts with every value of the original; then Rename (for example, BDB100B). Names accept letters, digits, spaces and _ - . ( ).

When you switch variants in the rail, only the values that differ change; the rest of the table stays the same.

BDB100B: 5V_OUT Voltage at 4.8 / 5.2 V; everything else equal to the base
BDB100B: 5V_OUT Voltage at 4.8 / 5.2 V; everything else equal to the base

Add variant creates a blank variant, without the base values. For a new part number, duplicating is almost always what you want.

7. Edit and save

Type in the cell and press Enter; Esc cancels. Numeric cells accept a comma or a dot as decimal separator. In boolean cells, the first click selects and the second opens True / False.

The status bar says Unsaved changes until you save with Ctrl+S or File › Save, then All changes saved. Switching variants, syncing, signing out or closing the window with unsaved changes asks first.

BDB100C just duplicated, with one limit edited and “Unsaved changes”
BDB100C just duplicated, with one limit edited and “Unsaved changes”

8. Change history

At the bottom, Change history lists, per variant and per day, every change with its time, user, property and previous → new value. A change not yet saved shows as "Unsaved". Export day to CSV saves the list for quality or an audit.

Change history for BDB100C: time, user and 5.25 → 5.15
Change history for BDB100C: time, user and 5.25 → 5.15

There is no approval flow: there is history. What a user saves is applied and recorded.

9. Export and import CSV

File › Export parameters… saves the open variant's step or container parameters to CSV; edit it in Excel. File › Import parameters… reads the file back: every row is validated against the tree (a row that does not match a step of the product is rejected with its reason) and the changes stay pending until you save.

The exported CSV, open in Excel
The exported CSV, open in Excel
Imported values, pending save
Imported values, pending save

10. When the sequence changes

If the .seq changes (a new step, a removed step, a different limit in the base), choose Sync from sequence in the product menu. Variant Manager tells you what it will add, rename, remove and leave unchanged, and on confirmation reports "Product synchronized successfully · Added · Updated · Removed". New steps appear in every variant.

11. Apply the variant in TestStand

The sequence is not modified. The only addition is one .NET step at the start of each sequence whose steps are managed, calling VariantLoader.Load(SequenceContext, variant, product) from B101.Ts.Var.Loader.dll (in C:\Program Files (x86)\B101\AteFramework\). At run time the loader applies the saved values of the variant to the steps of that sequence, by data type.

  • The variant is chosen by variant and product name (or by id), for example from a station variable or from the part number the operator scans.
  • An empty or disabled value in Variant Manager is skipped: the step keeps the value written in the sequence. The loader does not stop the test for a missing value.
  • A sequence with steps in subsequences needs the call in every subsequence that has managed steps.
The sequence in TestStand: the 5V_OUT Voltage step with its limit written as a number; this is what Variant Manager reads
The sequence in TestStand: the 5V_OUT Voltage step with its limit written as a number; this is what Variant Manager reads

Ready-made example to open in TestStand 2025 and import: the synthetic BDB-100 sequence (BDB100_FCT.seq) used in these screenshots ships with the demo app; ask for it at info@bravo101.systems.

12. License

6-day free trial with every feature. To license: buy the license (BR101-VM-LIC-1) in the store, send your Device ID on Activate your license and get the key the next business day. Perpetual license per station, activated offline. If you change the station's PC, we reissue the key at no cost.

13. What it doesn't do

  • It doesn't edit the sequence logic: that stays in TestStand, with its Development license.
  • It doesn't run tests or pick the variant on its own: the sequence picks it and calls the loader.
  • It isn't an operator interface.
  • It doesn't compare two variants side by side and has no approval flow.

Missing something? Write to info@bravo101.systems and tell us what you were trying to do.

The guide for each app

Written for test and quality engineers, with screenshots of the published versions and demo data.

  1. Report Analyzer

    From the ATML report to the capability study

    Configure TestStand to write ATML, import folders, group runs, read Cg, Cgk, Pp and Ppk, and export PDF and Excel.

    Report Analyzer guide

  2. Variant Manager

    One sequence, every part number with its values

    Install with the ATE Framework, register the sequence, create variants, history and CSV, and call TS Var Loader.

    Variant Manager guide

  3. Report Viewer

    Open a report and see only what failed

    Open the ATML, read the header and the step table, several runs in one file, incomplete reports.

    Report Viewer guide

  4. Floor guides

    What we learned releasing stations

    MSA Type 1, Gage R&R, capability, and the release checklist for a test station.

    Read the guides