BDD with Steve Branam episode artwork

EPISODE · Mar 26, 2025 · 55 MIN

BDD with Steve Branam

from The Agile Embedded Podcast · host Steve Branam, Luca Ingianni, Jeff Gable

Key Topics[02:30] Definition of BDD as an additional layer of discipline on top of TDD[03:15] Common pitfalls of TDD, including testing to implementation and brittle tests[08:30] The structure of BDD tests using Given-When-Then format[12:00] Applying BDD at different levels, from unit tests to system tests[15:45] Using test doubles and spies for hardware interactions in embedded systems[22:30] Testing state machines with BDD[27:00] Off-target testing and hardware abstraction layers[33:00] Why BDD isn't more widely used in embedded systems[36:30] Using code coverage as a signal rather than a goal metric[39:00] Overcoming the learning curve and maintaining discipline in BDDNotable Quotes"BDD is an additional layer of discipline on top of TDD. Dan North's goal was to get straight to the good stuff of TDD without getting into the pitfalls." — Steve"The key thing that BDD does by saying we're going to focus on behavior is you look at the API that you've written and you say, what can I do through the public API to affect this, to check the results and so forth?" — Steve"By having abstraction layers, you create your thin layer that's substitutable with either the real code on target, or with a test double off target." — Steve"Code coverage as a goal metric is not a good thing. Rather than using code coverage as just this almost dimensionless metric, use it as a signal to guide you." — Steve"By adhering very strictly to the simple rules of how to do BDD, by forcing yourself to the discipline of that strict adherence, it keeps you on track." — SteveResources MentionedJames Grenning's bookSteve's blog postEmbedded Online TalkIan Cooper's video You can find Jeff at https://jeffgable.com.You can find Luca at https://luca.engineer.Want to join the agile Embedded Slack? Click hereAre you looking for embedded-focused trainings? Head to https://agileembedded.academy/Ryan Torvik and Luca have started the Embedded AI podcast, check it out at https://embeddedaipodcast.com/  

# Mastering Behavior-Driven Development in Embedded Systems with Steve Branam In this insightful episode of the Agile Embedded Podcast, Jeff and Luca welcome Steve Branam, a software developer with over 40 years of experience in communication systems, consumer products, and embedded systems. Steve shares his expertise on Behavior-Driven Development (BDD), explaining how it adds an additional layer of discipline on top of Test-Driven Development (TDD) to help developers avoid common pitfalls. Steve describes BDD as a design technique that focuses on behavior rather than implementation details, which helps create more robust, less brittle test suites. He explains how the structured 'Given-When-Then' format forces developers to think about the public API and observable behaviors rather than internal implementation details. Throughout the conversation, Steve provides practical examples of applying BDD to embedded systems, including strategies for testing hardware interactions using test doubles like spies, and approaches for testing state machines without creating brittle tests.

NOW PLAYING

BDD with Steve Branam

0:00 55:56

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

Frequently Asked Questions

How long is this episode of The Agile Embedded Podcast?

This episode is 55 minutes long.

When was this The Agile Embedded Podcast episode published?

This episode was published on March 26, 2025.

What is this episode about?

Key Topics[02:30] Definition of BDD as an additional layer of discipline on top of TDD[03:15] Common pitfalls of TDD, including testing to implementation and brittle tests[08:30] The structure of BDD tests using Given-When-Then format[12:00]...

Can I download this The Agile Embedded Podcast episode?

Yes, you can download this episode by clicking the download button on the episode player, or subscribe to the podcast in your preferred podcast app for automatic downloads.
URL copied to clipboard!