Skip to main content
FixturFab

Open source test tools for hardware automation

Five production-tested Python tools for automating hardware functional tests. Built by our test engineering team, used on every fixture delivery project, and free to use with any test setup.

FixturFab's test automation stack is five open-source Python tools for production functional testing of embedded hardware: a pytest plugin, instrument drivers, a project template, a test runner, and sample projects. Each tool works independently — adopt one or use the full stack depending on where your test system is today.

Every hardware team building production tests faces the same bootstrapping problem: there's no standard stack for functional test automation. You write custom pytest fixtures for instrument control, build your own serial communication wrappers, wire together deployment scripts, and hope the engineer who built it all doesn't leave before documentation happens.

We ran into the same problem building test systems for fixture customers. So we built a reusable stack — and then open-sourced it.

5
open-source tools, one integrated testing stack

What the tools cover

The stack covers the full test automation workflow, from scaffolding a new project to deploying tests on a production line. Here's a quick orientation before you browse the project pages below.

pytest-f3ts is the core — a pytest plugin that structures hardware functional tests with test plans, hardware interface patterns, and measurement data collection. f3ts-hardware-utils handles instrumentation: write instrument logic once across power supplies, DMMs, and oscilloscopes, then swap hardware without rewriting tests. f3ts-cookiecutter scaffolds new projects with pre-configured pytest-f3ts setup, CI/CD workflows, and documentation structure. Skip the boilerplate. test-runner packages your tests into a deployable container for production stations — Docker and Balena-based with a web interface for operators. And sample projects are working reference implementations you can use as starting points.

Choosing where to start

Start with pytest-f3ts if you're building from scratch. It handles the core problem — structuring hardware tests in Python — and integrates with the rest of the stack as your needs grow.

If you already have a test framework and need instrument drivers, start with f3ts-hardware-utils instead. It works independently of pytest-f3ts.

If you're deploying tests to a production line and need a turnkey execution environment, look at test-runner after your tests are working locally.

New to hardware testing entirely? Our guide on how to test circuit boards at scale covers the testing methods and infrastructure decisions that determine which tools you'll need.

Works standalone, integrates with fixtures

Each tool works with any hardware setup. You don't need FixturFab fixtures to use them, and they're not locked to our instrumentation.

That said, they integrate naturally with FixturFab products. When you configure a fixture in Studio, you can export configuration files that work directly with pytest-f3ts. The sample projects demonstrate this integration with real FixturFab hardware like FixturCtrl. Your test automation and your bed-of-nails fixture are parts of the same system — when you're ready for the mechanical side, the software side is already handled.

Our open source projects

f3ts-cookiecutter

stable

Project template for hardware test development. Start new test projects with best-practice structure, CI/CD configuration, and pytest-f3ts integration.

f3ts-hardware-utils

stable

Python instrumentation control modules for test automation. Unified interface for power supplies, DMMs, oscilloscopes, and other test equipment.

pytest-f3ts

stable

A pytest plugin for hardware functional testing that provides fixtures, markers, and utilities for test automation of electronic devices.

Sample Projects

stable

Reference implementations demonstrating pytest-f3ts usage for different hardware testing scenarios.

test-runner

beta

Docker and Balena-based test execution environment for production hardware testing. Deploy consistent test environments to production lines.

Your test automation and your fixtures, one system

The open-source stack handles test software. FixturFab handles the fixture hardware. Configure a bed-of-nails fixture online and have it in 2-3 weeks.