The Unique Challenges of Test-Driven Design (TDD) for Embedded Systems
This article is in response to a question asked during Scott Bain’s webinar Test-Driven Development in the Larger Context: TDD & ATDD [also see Scott’s blog on the topics of unit level test-driven development (UTDD) and acceptance test-driven development (TDD)].
It is challenging to test software that runs on resource-constrained systems such as consumer products, medical implants and spacecraft components. For server-based systems, setting up test environments with test-unique software logic makes sense and enables straightforward automated pipeline testing at the unit and acceptance levels.
However, for embedded systems these approaches do not work and alternatives are needed. Program managers need to understand this problem and be prepared to accommodate additional test time—and champion the creation and maintenance of custom test platforms and tools in order to ensure product quality and safety.
Many products and devices contain software running on compute platforms with limited resources (aka embedded systems), such as:
- Smart home devices (like plugs, thermostats, speakers and sensors)
- Medical diagnostic and control devices (such as glucose monitors and pumps)
- Aerospace control systems and payloads (like guidance systems and environmental sensors)
- Automotive monitoring and control systems (like automated car navigation)
Please log in or sign up below to read the rest of the article.