Test Plan YAML definition
PLT Test Plan (.YAML)
In-circuit and Finished Goods (FG) test plans can be transcribed as PLT test plan (.YAML) files.
Example: A minimal test suite, with a single test item, scanning a bar code.
title: "PLT demo: Scan"
suite:
- ident: SCAN-T1
title: "Scan MAC address"
steps:
- command: scan ANY
Test Plan Structure
PLT test suites are encoded as YAML text files, starting with the test suite title.
title: "PLT demo: Scan"
The title:
is followed by the suite:
section, containing the test
items in the test plan.
Test Items
Test items are identified with an ident:
line, can contain
a descriptive title
, and should contain one or more test item steps.
Tip
The ident: field can be used to match PLT test plan items with items in the ICT and FG Test Plan .XLSX files or documents.
The ident:
field can be omitted, in which case test items will be
automatically enumerated. A top-level identPrefix:
field can be
used to set common prefix for auto-generated test item identifiers.
During test execution, all test item steps need to complete successfully for the test item to succeed.
Test Item Steps
Test item steps consist of command:
blocks.
A Test Item can contain multiple Test Item steps.
Retries
Retry counts can be set at the test item or at the test item step level,
by adding a retry:
field.
title: "Retries"
identPrefix: "R"
suite:
- title: "Test Item retries"
retry: 3
steps:
- command: sleepms 1000
- command: operator Manual
- title: "Test Item retries"
steps:
- command: sleepms 1000
- command: operator Manual
retry: 3
Command Reporting
To improve the clarity of test execution feedback,
command steps can include title:
and fail:
fields.
These fields allow test plan authors to provide human-readable descriptions and error guidance, which are displayed both during test execution and in the test reports. This helps operators understand the purpose of each step and what to do if something goes wrong.
The title:
field can be used to provide a DUT-specific description of what the step is performing.
The fail:
field defines a custom error message shown when the step fails. This message can provide guidance for troubleshooting or suggest corrective actions, such as checking solder joints or verifying power levels.
title: "command with title and fail fields"
suite:
- steps:
- command: measure voltageDATP01 >100mV
title: "validating D1 connection"
fail: "check for D1 solder defect"
Timeouts
Timeouts can be set at the test item or at the test item step level,
by adding a timeout:
field.
title: "Basic timeout field usage"
suite:
- steps:
- command: operator "Confirm"
timeout: 5s
The timeout can be can be expressed in milliseconds, which is the default unit, or by using suffixes such as:
“400ms” for 400 milliseconds.
“5s” for a 5-second timeout.
“1m” for a timeout of 1 minute.
Conditional Execution
Added in version PLT-OS: v2.2
Test items and individual test steps can be conditionally executed using the if:
field.
This allows the test plan to include optional logic paths, perform validations only if certain conditions are met, or skip steps based on dynamic values.
if:
expressions must evaluate to a boolean value (true
or false
) and can
use variables defined earlier in the test plan (via the define
command or the extractKey:
field of a test step).
Tip
Use conditional execution to control whether a test item or step is run, based on runtime conditions such as values returned from earlier steps, PPC properties, or external environment setup.
Item-level Conditional Execution
The if:
field may be added to any test item to control whether the entire item (and all its steps) should be executed.
title: "Conditional test item execution"
suite:
- title: "Always runs"
steps:
- command: define A "1"
- title: "Conditionally skipped"
if: "false"
steps:
- command: operator "This will be skipped"
Step-level Conditional Execution
Individual steps can also be conditionally executed by including the if:
field inside a step.
title: "Conditional step execution"
suite:
- title: "Define variable"
steps:
- command: define B "1"
- title: "Mixed steps"
steps:
- command: eval "numeric(B) + 1"
title: "This step is skipped"
if: "false"
extractKey: B
- command: eval "numeric(B) + 1"
extractKey: B
Supported Expressions
The if:
condition can use the following elements:
Literal values:
true
,false
Variables previously defined or extracted:
A
,B
, etc.Simple expressions:
numeric(A) > 1
,A == 'enabled'
Note
Expressions are evaluated in the same context as eval
commands and must return a boolean result to be valid as an if:
condition.
Teardown Section
The optional teardown:
section defines cleanup steps
after test execution, such as resetting equipment or powering down devices.
Example:
title: "Simple Test Plan with Teardown"
suite:
- title: "Perform Test"
steps:
- command: pin RDTP01 output high
- command: operator "Run test"
teardown:
steps:
- command: pin RDTP01 output low
Calibration Section
Some test setups may require additional calibration, which can be specified
in the YAML test plan with an optional top-level calibration:
section.
calibration:
- [ppc: <ppcID>]
[impedance: <impedanceOffset>]
[voltage: <voltageOffset>]
[voltageDATP07: <voltageOffset>]
[voltageDATP08: <voltageOffset>]
[voltageDATP09: <voltageOffset>]
[voltageDATP10: <voltageOffset>]
[voltageDATP11: <voltageOffset>]
[voltageDATP12: <voltageOffset>]
[voltageMUX0: <voltageOffset>]
[voltageMUX1: <voltageOffset>]
[voltageMUX2: <voltageOffset>]
[voltageMUX3: <voltageOffset>]
[current: <currentOffset>]
[current3V3: <currentOffset>]
[current5V: <currentOffset>]
[currentVARV: <currentOffset>]
- ...
The following fields can be set in a calibration entry:
Field |
Description |
---|---|
|
Define the PPC for which this calibration entry should be applied. If omitted, the section defines the default offsets, to which a PPC-specific calibration section would be added. |
|
Specifies the offset for impedance measurements. |
|
Specifies the offset for voltage measurements. |
|
Specifies the offset for voltage measurements on the
|
|
Specifies the offset for voltage measurements on the
|
|
Specifies the offset for voltage measurements on the
|
|
Specifies the offset for voltage measurements on the
|
|
Specifies the offset for voltage measurements on the
|
|
Specifies the offset for voltage measurements on the
|
|
Specifies the offset for voltage measurements on the
|
|
Specifies the offset for voltage measurements on the
|
|
Specifies the offset for voltage measurements on the
|
|
Specifies the offset for voltage measurements of the
|
|
Specifies the offset for current measurements. |
|
Specifies the offset for current measurements of the
|
|
Specifies the offset for current measurements of the
|
|
Specifies the offset for current measurements of the
|
With the following argument values:
Argument |
Description |
---|---|
ppcID |
PPC identifier for a |
impedanceOffset |
Offset for impedance measurements.
Can be specified with |
voltageOffset |
Offset for voltage measurements.
Can be specified with |
currentOffset |
Offset for current measurements. Can be specified with
|
Example:
title: "test plan with calibration"
identPrefix: "ICT-T"
calibration:
# Default offsets
- impedance: -100 # 100 Ohm
voltage: +20mV # Default for all voltage channels
voltageDATP01: +40mV
voltageMUX2: +20mV
voltageMUX3: +30mV
currentVARV: -20mA
# Additional offsets specific to a particular PPC
- ppc: 39c8db # Additional offsets for this PPC
impedance: +120Ohm
voltageDATP08: -10mV
current5V: +100mA
suite:
- title: "Impedance Measurement"
steps:
- command: mux 0 RATP02
- command: mux 1 RATP17
- command: mux 2 RA
- command: mux 3 RVREF
- command: short 0 2 set
- command: short 1 3 set
- command: measure impedance 10-20Ohm
runs-on section
An optional runs-on:
section allows specifying test execution
constraints.
Example: test plan requiring PLT-OS v1.9
runs-on:
version: "1.9"
suite:
- steps:
- command: operator "Hello"
Example: Complex constraints
title: "Complex constraints"
runs-on:
# Supported PLT-OS version(s)
version:
# Multiple version constraints can be provided (OR)
- "1.2.3"
- "~> 2.0"
# Comma-separate constraints (AND)
- ">= 5.0.0, < 7.2.3"
# Only on PLTs with attached PPCs with any of these IDs
ppc:
- "a32fa1"
- "323213"
model:
- "PLT-200A"
- "PLT-300A"
suite:
- ident: "ICT1"
steps:
- command: sleepms 1000
See also
Test Plan JSON Schema (v2.6.7)
that can be used to validate Test Plan YAML files.