Procedures
Define your test sequence for your Units Under Test.

Overview
The Procedures allow you to set up the test sequence for one or more units under test. It provides analytics and test performances across multiple runs, including average test duration, yields, Cpk, and Control Chart for numerical values.
Integration
First, you need to create a new procedure in the TofuPilot interface. Go to Procedures page and click the Create Procedure button.
Once the procedure is created, you can upload your Runs using the procedure_id
parameter to link them to the correct Procedure. You’ll also need to set the Unit Under Test and the test status.
Basic parameters
import openhtf as htf
from tofupilot.openhtf import TofuPilot
def main():
test = htf.Test(
procedure_id="FVT1", # Procedure name set by default as "openhtf_test"
part_number="PCB1",
)
with TofuPilot(test):
# Duration calculated during execution
test.execute(lambda: "PCB1A001")
if __name__ == "__main__":
main()
- Name
procedure_id
- Type
- str
- Description
Define unique procedure ID. You can view or rename it on the Procedure page in the application.
- Name
run_passed
- Type
- bool
- Description
Set the Pass/Fail status of the procedure.
- Name
unit_under_test
- Type
- array
- Description
Specify the Unit under test (UUT) being tested.
- Name
started_at
- Type
- str (optional)
- Description
ISO 8601 start time of the Run. Example: "2024-09-11T08:00:00Z".
- Name
duration
- Type
- timedelta (optional)
- Description
Specify the duration of the test.
- Name
procedure_version
- Type
- str (optional)
- Description
Define the version of the procedure.
You can define the duration
of the Procedure and the duration
of the Phases independantly.
Rename a procedure
You can rename Procedure name or its procedure_id
directly in the application. Go to the Procedure page, then select Edit ID or Edit Name from the menu.
Advanced parameters
You can define several important additional parameters for your procedures, each covered in a separate section:
- Break down test by Phases and Measurements
- Define Unit under test (UUT), which includes serial number, batch, revision, and part number.
- Add Sub-units during assembly
- Include file Attachments
In-app view
In TofuPilot, you can explore different procedures in the Procedures tab. On a Procedure page (for example, procedure_id
FVT1, titled "PCBA Test"), you can navigate through various tabs that display analytics for all runs executed from this procedure. These include:
- The status of Runs over time, based on
run_passed
- The average test Duration over time, compute from
duration
- The First-Pass Yield
- Cpk for tests with numerical measurements and defined limits.

These features will be explained in more detail in the Test phases analysis section.