Comprehensive Testing of Embedded Software
summary
Argues that embedded Rust code should be split into 90% hardware-agnostic logic and a tiny hardware layer so most behavior is unit-testable on laptop CI. Shows concrete patterns: use embedded-hal traits for drivers, drive tasks with event-driven testing over channels so tests control ordering and inject errors, and run hardware unit tests on a devkit plus a mock slave microcontroller talking over probe-rs + RTT to exercise I2C edge cases (clock stretching, DMA) with three compiled binaries.
AI-written summary · about
chapters (13)
- 0:00Embedded testing intro
- 1:12Testing improves code quality
- 2:42Automated testing essential
- 3:47Testing as debugging aid
- 5:13Hardware-agnostic vs dependent code
- 7:48Unit testing focus
- 11:42Defining units in embedded
- 16:46Testing a fictional app
- 23:29Event-driven testing
- 33:24Testing hardware drivers
- 37:00Unit testing on real hardware
- 43:25Summary
- 44:28Q&A
related talks
36mIt's Embedded Rust Time
50mHow to Do Embedded Development with Rust
01h 22mTest-Driven Development of C++ Embedded and System-Level Software
39mFrom C to Rust: Bringing Rust Abstractions to Embedded Linux
32mTesting strategies and pattern for efficient TDD in Rust
25mLeveling up hardware production with Rust
29mRust: Embedded, Async, All the Way
56mRust for Safe and Scalable Automotive: Insights from
