Home >
Applying Behavior Driven Development To Embedded Systems
Steve Branam - Watch Now - EOC 2025 - Duration: 02:00

This presentation will show how to combine Dan North’s Behavior Driven Development (BDD) with James Grenning’s Test-Driven Development (TDD) for embedded systems. Whether you work in a highly-specified regulated industry or off the back of a napkin, BDD helps build software verified to implement the desired behaviors.
The presentation will first introduce the techniques. Then it will introduce strategies for applying them in the presence of embedded system complexities, such as:
- Concurrency and synchronization between execution contexts such as interrupt and main context
- Multiple threads and multiple cores
- Event-driven finite state machines
- RTOS interactions
- Hardware interactions
The goal is to produce lean, effective, maintainable embedded system software that meets the aspirations of Edsger Dijkstra’s 1972 ACM Turing Lecture:
“Those who want really reliable software will discover that they must find means of avoiding the majority of bugs to start with, and as a result the programming process will become cheaper. If you want more effective programmers, you will discover that they should not waste their time debugging, they should not introduce the bugs to start with.”