An electronic test system is the combination of mechanical fixtures, electrical instrumentation, and software that turns a test specification into repeatable pass/fail results for PCBAs. Building one is closer to designing automated PCB testing infrastructure than wiring up a bench setup with a script. Most teams underestimate what this takes. They start with a fixture and a Python script, then discover that probe selection constrains signal routing, which limits instrument choice, which shapes the entire software architecture. The domains are more coupled than they appear.
This guide covers the architecture decisions you'll face across all three domains — and where those decisions interact in ways that will save or cost you months of engineering time.
The Three Domains of Test System Design#
Every functional test system has three architectural domains that must be designed together:
Mechanical — how the DUT physically connects to the test system. Fixtures, board handling, probe alignment, and pressure mechanisms. This determines which points on the board you can actually reach.
Electrical — how signals travel from the DUT through the fixture to measurement instruments. Signal routing, switching, power delivery, and grounding. This determines what you can measure and how fast.
Software — how test sequences execute, data gets logged, and operators interact with the system. Test frameworks, sequencing logic, pass/fail criteria, and production integration. This determines whether the system is usable beyond the engineer who built it.
The rest of this guide walks through each domain, then shows where they constrain each other.
Mechanical Architecture#
Mechanical test fixture design starts with one question: how does the board connect to the test system? The answer depends on what you need to access.
DUT Interface Options#
- Bed-of-nails fixtures — spring-loaded pogo pins contact test points on the board surface. Best for high-point-count functional testing where you need simultaneous access to dozens or hundreds of nodes. Most PCB test fixture designs use this approach for production.
- Edge connectors — board plugs into a socket via its edge connector. Works when the board already has a suitable connector and you only need access to signals routed to it.
- Cable harnesses — manual connections via cables and clips. Acceptable for prototyping or low-volume runs where building a fixture isn't justified yet.
Board Handling#
How the board loads into the fixture matters more than most teams expect. Manual press-down fixtures work for engineering benches. Pneumatic actuation is standard for production — it removes operator variability in press force and cuts cycle time. Vacuum fixtures handle thin or flexible boards that would deflect under mechanical pressure.
Alignment is the other mechanical concern. Guide pins and registration features ensure the board lands in the same position every time. Misalignment by even 0.5mm can cause probe misses on fine-pitch test points. See design for test guidelines for the PCB layout rules that make mechanical test fixture design reliable.
For fixture options, see bed-of-nails test fixtures.
Electrical Architecture#
The electrical architecture defines the signal path from the DUT through the fixture to your instruments — and back. Every connection in that chain affects measurement quality.
Signal Routing#
Probes contact the board. Receptacles carry those signals to a test probe carrier board (TPCB) or wiring harness. From there, signals route to instruments through connectors, relay matrices, or direct wiring. The number of test points you need to access drives the complexity of this routing.
Relay matrices and switching cards let you share a smaller number of instruments across a larger number of test points. A 200-point fixture doesn't need 200 DMM channels — it needs a switching strategy that connects the right points to the right instruments at the right time.
Instrument Selection#
Match instruments to measurements, not the other way around:
- Power supplies — powering the DUT and measuring current draw
- Digital multimeters (DMMs) — voltage, resistance, continuity
- Logic analyzers / digital I/O — testing digital communication buses
- DAQ cards — high-speed analog acquisition when DMMs are too slow
- Programmable loads — simulating real-world current demands
- Oscilloscopes — waveform analysis for timing-critical signals
Instruments communicate over SCPI (via USB, Ethernet, or GPIB). Your software talks to them through these interfaces, so instrument choice directly constrains software architecture.
Support Circuits#
Between the fixture probes and the instruments, you often need support circuitry on the TPCB:
- Power injection and continuity testing circuits
- Driver circuits for LEDs, motors, relays on the DUT
- Multiplexer/demultiplexer circuits for signal routing
- Voltage level shifters for mixed-logic boards
- Communication translators (USB, UART, SPI, I2C, CAN)
These circuits live on the TPCB and are designed alongside the fixture — they're part of the electrical architecture, not an afterthought.
Browse test equipment for instrument options.
Software Architecture#
The software is what turns a rack of instruments and a fixture into a working test and measurement automation system. It's also where most teams cut corners — and pay for it later.
Test Sequencing#
Even for embedded automation testing on a single product line, the sequence follows a consistent pattern: initialize instruments, configure the DUT (power it up, set it to a known state), run test steps, collect results, generate a report. The framework you choose determines how these steps are organized.
Common choices:
- Python with pytest — flexible, low cost, strong ecosystem. pytest-f3ts is an open-source framework built specifically for functional test sequencing.
- LabVIEW / TestStand — established in traditional test organizations. Excellent instrument driver support, but vendor lock-in and licensing costs.
- Custom frameworks — some teams build their own. This works until the original developer leaves.
See open-source test tools for framework options that avoid vendor lock-in.
Production Deployment#
Engineering bench software and production test software have different requirements. Production adds:
- Operator interface — simplified UI with clear pass/fail, barcode scanning, work order tracking. The operator should not need to understand the test; they need to load a board, press start, and read the result.
- Data logging and traceability — every test result tied to a serial number, stored for warranty and compliance. MES (Manufacturing Execution System) integration if you're tracking production metrics.
- Error handling — what happens when an instrument doesn't respond? When the fixture sensor detects no board? Production software needs to handle these without crashing or producing ambiguous results.
Design your test software with production deployment in mind from the start. Rewriting a bench prototype into production software typically takes longer than building it correctly the first time.
How Design Decisions Interact#
This is where test system design gets interesting — and where ad-hoc approaches break down.
| Decision in... | Constrains... | Example |
|---|---|---|
| Mechanical | Electrical | 300 test points require relay switching matrices, adding signal path length and settling time |
| Electrical | Software | DMM at 100ms/measurement x 200 points = 20s cycle time; parallelizing with DAQ reshapes the software |
| Software | Mechanical | pytest outputs to terminal; LabVIEW needs a custom VI; TestStand has its own operator paradigm — each shapes station ergonomics |
| Electrical | Mechanical | Instrument rack proximity and cable egress must be planned into the fixture enclosure |
| Software | Electrical | Production data logging adds instrument queries that extend cycle time |
A 50-point fixture might wire directly to instruments. A 300-point fixture needs relay matrices, which add signal path length, insertion loss, and settling time. Your instrument budget and test cycle time both change.
If your DMM takes 100ms per measurement and you have 200 measurements, that's 20 seconds of measurement time alone. Switching to a faster DMM or parallelizing with a DAQ card reshapes the entire electrical architecture — and the software that drives it.
The common thread: decisions in one domain create constraints in the others. Teams that design all three domains in parallel — even roughly — avoid the iteration cycles that come from discovering these constraints one at a time.
Common Architecture Mistakes#
- Designing software before specifying measurements. You can't write test sequences until you know what you're measuring, with what instruments, through what signal path. Start with the test specification, then the electrical architecture, then the software.
- Under-sizing instrument channel count. Adding channels later means adding switching hardware, rewiring the fixture, and updating the software. Budget for the full test plan from the start, including tests you'll add in the next board revision.
- Ignoring cable routing in fixture design. A fixture that works on the bench but can't be cabled in a production rack is a redesign. Account for cable egress, connector access, and instrument rack proximity in the mechanical design.
- Treating test software as throwaway. The bench script that "works for now" will be running in production six months later, maintained by someone who didn't write it. Write it like production code from day one.
- Omitting operator ergonomics. Engineers tolerate clumsy workflows. Production operators running 500 boards per shift do not. Fixture height, board loading motion, status visibility, and error recovery all affect throughput and error rates.
From Design to Implementation#
Where you go next depends on where you are:
- Need a test specification first? Start with writing test specifications — the document that drives every design decision downstream.
- Choosing instruments? Browse test equipment for power supplies, DMMs, and programmable instruments.
- Need fixtures? See bed-of-nails test fixtures or explore fixture options in Studio.
- Want open-source test frameworks? pytest-f3ts is a Python framework for functional test sequencing.
- Scaling from prototype to production? Read prototype to production for the decisions that change as volume grows.
- Evaluating test coverage? See test coverage strategies for multi-method coverage planning.
For a broader view of testing methodologies — ICT, flying probe, boundary scan, and when each applies — see how to test circuit boards.