professional
Hardware-in-the-Loop Test System
Automated regression testing of an embedded product on real hardware, integrated into the pull-request workflow.
Details anonymized (NDA)
Hardware-in-the-Loop Test System
- Role
- Embedded Software Engineer – Test Automation
- Period
- Jan 2023 – Present
- Technologies
- Yocto Python C++ pytest GitHub Actions Docker
Context
An embedded product built on a custom Yocto-based Linux distribution needed a reliable way to catch regressions before they reached the field. Manual testing on the bench was slow and hard to repeat.
My role
I designed and developed the test system end to end: the test bench architecture, the application services that talk to the device under test, and the integration with CI.
Architecture
Pull request ──► CI runner ──► Test controller (Linux)
│
┌───────────────┼────────────────┐
▼ ▼ ▼
Power control Serial / SSH I/O simulation
└───────────────┼────────────────┘
▼
Device under test (Yocto image)
Technical highlights
- Test cases written in Python with pytest, with fixtures that flash and boot the image under test.
- Dedicated services on the target to expose internal state to the test controller.
- Results published back on the pull request, so a broken build never reaches
main.
Results
- Regression suite runs on every pull request instead of once per release.
- Bugs found earlier, when they are cheaper to fix.
Lessons learned
Making the bench deterministic (power cycling, clean flashing, fixed timeouts) mattered more than the number of test cases.