Skip to content
Compliance & Traceability

Test Traceability for Aerospace (AS9100)

Map AS9100 quality management requirements to TofuPilot features for test records, serial tracking, measurement history, and audit-ready exports.

JJulien Buteau
intermediate8 min readMarch 14, 2026

AS9100 requires aerospace manufacturers to maintain traceable, tamper-evident test records for every unit produced. TofuPilot maps directly to these requirements, giving you structured test data, serial number tracking, and exportable records without building a custom QMS.

AS9100 Requirements for Test Records

AS9100 Rev D builds on ISO 9001 with aerospace-specific additions. The clauses most relevant to test and inspection are:

AS9100 ClauseRequirementTofuPilot Feature
7.1.5 Monitoring and measuring resourcesCalibrated equipment, traceable measurementsMeasurements with units and limits, station identifiers
7.5.3 Control of documented informationRecords retained, protected, retrievableImmutable test records, cloud storage with retention
8.5.2 Identification and traceabilityUnique identification of product throughout productionSerial number tracking, unit history page
8.6 Release of products and servicesEvidence of conformity to acceptance criteriaPass/fail results with measurement limits
8.7 Control of nonconforming outputsDocumented nonconformances with dispositionFailed test runs with root cause measurements
10.2 Nonconformity and corrective actionRecords of nonconformities and actions takenFailure history per unit, measurement trends

Structuring Tests for AS9100 Compliance

A well-structured OpenHTF test produces the data AS9100 auditors look for: identified DUT, traceable measurements with limits, and a clear pass/fail determination.

test_aerospace_pcba.py
# Aerospace PCBA acceptance test with AS9100-aligned structure
import openhtf as htf
from openhtf.util import units
from tofupilot.openhtf import TofuPilot

@htf.measures(
    htf.Measurement("insulation_resistance")
        .in_range(minimum=100)
        .doc("Per IPC-9252, minimum 100 Mohm between adjacent nets"),
    htf.Measurement("hi_pot_leakage")
        .in_range(maximum=0.001)
        .with_units(units.AMPERE)
        .doc("Dielectric withstand per MIL-STD-202, Method 301"),
)
def dielectric_test(test):
    test.measurements.insulation_resistance = 450.2
    test.measurements.hi_pot_leakage = 0.00012

@htf.measures(
    htf.Measurement("supply_voltage")
        .in_range(minimum=27.5, maximum=28.5)
        .with_units(units.VOLT)
        .doc("28V nominal bus, AS6081 compliant power supply"),
    htf.Measurement("quiescent_current")
        .in_range(maximum=0.050)
        .with_units(units.AMPERE),
    htf.Measurement("output_signal_snr")
        .in_range(minimum=40),
)
def functional_acceptance(test):
    test.measurements.supply_voltage = 28.01
    test.measurements.quiescent_current = 0.0124
    test.measurements.output_signal_snr = 52.3

@htf.measures(
    htf.Measurement("temperature_cycle_drift_pct")
        .in_range(maximum=0.5)
        .doc("Output drift after -40C to +85C cycle per RTCA DO-160"),
)
def environmental_screening(test):
    test.measurements.temperature_cycle_drift_pct = 0.18

def main():
    test = htf.Test(
        dielectric_test,
        functional_acceptance,
        environmental_screening,
    )
    with TofuPilot(test):
        test.execute(test_start=lambda: "AE-PCB-2026-00847")

if __name__ == "__main__":
    main()

Each measurement includes units (where a constant exists), limits, and documentation strings. TofuPilot stores all of this, making it retrievable during audits.

Record Retention and Retrieval

AS9100 clause 7.5.3 requires that quality records are retained for the period specified by the customer or regulatory authority. In aerospace, this often means 7 to 30 years depending on the program.

TofuPilot stores test records immutably. Records can't be edited or deleted through the normal interface. You can search by serial number, procedure, station, date range, or pass/fail status.

For audit preparation, export test records from TofuPilot's dashboard. Each export includes the serial number, procedure name, station, operator (if captured), all measurements with limits, and the overall result.

Nonconformance Tracking

When a unit fails a test, AS9100 requires documented nonconformance handling. TofuPilot captures this at the measurement level.

test_nonconformance.py
# Test that captures detailed failure data for nonconformance records
import openhtf as htf
from openhtf.util import units
from tofupilot.openhtf import TofuPilot

@htf.measures(
    htf.Measurement("solder_joint_resistance")
        .in_range(maximum=0.05)
        .with_units(units.OHM)
        .doc("IPC-A-610 Class 3 solder joint acceptance"),
    htf.Measurement("component_placement_offset")
        .in_range(maximum=0.1)
        .with_units(units.MILLIMETRE)
        .doc("Component X/Y offset from nominal pad center"),
    htf.Measurement("visual_inspection_defects")
        .in_range(maximum=0)
        .doc("Count of IPC-A-610 Class 3 defects found"),
)
def incoming_inspection(test):
    test.measurements.solder_joint_resistance = 0.08  # FAIL: exceeds 0.05 ohm
    test.measurements.component_placement_offset = 0.04
    test.measurements.visual_inspection_defects = 0

def main():
    test = htf.Test(incoming_inspection)
    with TofuPilot(test):
        test.execute(test_start=lambda: "AE-PCB-2026-00848")

if __name__ == "__main__":
    main()

The failed measurement (solder joint resistance at 0.08 ohm, limit 0.05 ohm) is recorded with its exact value. In TofuPilot's dashboard, failed runs surface immediately. The unit's history page shows every test attempt, so you can track rework and retest cycles.

Station and Equipment Identification

AS9100 requires traceability of monitoring and measuring equipment. TofuPilot records the station identifier for every test run, linking results to specific test fixtures and equipment.

Configure station names to match your equipment calibration records. This creates a direct link between test results and the calibrated instruments that produced them.

Audit-Ready Exports

TofuPilot's dashboard provides everything AS9100 auditors typically request:

  • Unit history. Complete test record for any serial number, showing every procedure, measurement, and result.
  • Measurement trends. Control charts and Cpk values for any measurement across production, demonstrating process stability.
  • Failure analysis. Failure Pareto charts showing which measurements fail most often, supporting corrective action (clause 10.2).
  • Station records. Test results filtered by station, supporting equipment traceability requirements.

All of this data is available without writing custom reports or export scripts.

More Guides

Put this guide into practice