Test-Driven Development of C++ Embedded and System-Level Software
summary
Argues that TDD is practical for embedded C++ by showing concrete code, tests and tradeoffs: uses C++20 + GoogleTest/GoogleMock to drive a transport stack and message builder, verifies timestamp packing and buffer assembly with unit tests that reach full branch coverage, and runs most work on host to cut test time. Compares techniques—compile-time dependency injection, runtime polymorphism, function-pointer wiring and link-time substitution—and demos an MMIO bit abstraction for GPIO and interrupt-driven drivers; performance and CI implications are measured.
AI-written summary · about
chapters (6)
- 0:00Test-driven development intro
- 12:04Host unit tests before target
- 24:46Message encoding with TDD
- 49:11Dependency injection for embedded
- 1:02:26Hardware tests with compile-time abstractions
- 1:14:25Q&A
related talks
38mHow we implemented TDD in Embedded C/C++
01h 01mBack to Basics: Test-driven Development
01h 00mC++ Test-driven Development
59mC++ Unit testing - the good, the bad & the ugly
01h 01mAdvanced Unit Testing in C & C++
01h 00mMetal-In Test-Driven Development: A Dual-Target TDD approach
01h 02mRewiring Your Brain - Boost Productivity with Test Driven Thinking in C++
01h 11mC++ in the World of Embedded Systems
