Skip to content
sabrichamtouri
← All projects

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.