Steve Branam
Example of BDD Style TDD For Embedded System Software
Status: Available NowBased on the blog post https://www.embeddedrelated.co
BDD adds several advantages to TDD:
- It results in an executable specification of a module that is understandable by both technical and non-technical stakeholders. This makes it easier to understand by all parties, and easier for them to specify additional behavior.
- Because of its emphasis on behavior, it guides the developer to test to interface, not internals. This minimizes the risk of creating brittle tests. That minimizes the need for test maintenance when doing production code maintenance: changing the internals doesn't create a mass of failing tests.
- It focuses on one aspect of behavior at a time. This ensures that tests only test one thing at a time, keeping them simple. When a test fails, it's clear what failed and what should have happened. That makes isolating and fixing the problem faster.
- It avoids code bloat and untested code, since every bit of production code is there because a behavioral test required it.
This additional layer of discipline makes TDD even more effective for both immediate development and long-term maintenance. It's easily applied to embedded systems modules to enable off-target testing, resulting in known-good components. It works equally as well when you start with a well-defined idea of what the module internals will be and when you only have a vague idea.
Live Q&A - Example of BDD Style TDD For Embedded System Software
Status: Available NowLive Q&A with Steve Branam for the talk titled Example of BDD Style TDD For Embedded System Software
Learning Rust For Embedded Systems
Status: Available NowThis will cover my experience learning to work in Rust for embedded systems. This is from working as a volunteer firmware developer on the VolksEEG open source/open hardware project. Most of my experience is with C and C++, and this is my first project using Rust. I'll cover the resources I've used to learn both general Rust and the specifics of Rust on embedded systems, as well as the challenges I've run into. Rust eliminates several classes of problems that typically occur with other languages, but in order to do so it follows some different language philosophies and rules.
Live Q&A - Learning Rust For Embedded Systems
Status: Available NowLive Q&A with Steve Branam for the talk titled Learning Rust For Embedded Systems
IoT Fault Lines (2020)
Status: Available NowSteve will outline the fault lines in the elements of the IoT triad: the embedded devices, the frontend user applications, and the backend server applications.
These fault lines are a common source of problems during development, testing, deployment, operation, and maintenance of IoT products. The goal of the presentation is to heighten awareness of them to avoid nasty surprises, and present some strategies for managing and mitigating them.