How we implemented TDD in Embedded C/C++ – Byran Wills-Heath
Software Delivery 2016
Byran Wills-Heath How we implemented TDD in Embedded C/C++
Short synopsis: We’ve been developing embedded software using TDD since 2009. This talk presents some of the patterns and practices that help us deal with the extra complications incurred when practising TDD in an embedded environment.
Bio: Byran began developing software at school as a teenager on BBC Micros; 22 years later he’s still passionate about software development. He’s worked in the embedded software industry for the past 16 years, working in a range of industries using technologies from 8051s to ARM microcontrollers. He currently lives in Cornwall, England working at Bluefruit Software. His recent focus has been on software testing of bare metal systems.
Long synopsis: With the ever increasing complexity of software the need to use development practices like Test Driven Development (TDD) is becoming more and more important. Embedded software development presents an extra set of challenges when practising TDD. Hardware is often still in development, expensive or has limited availability. Deploying to the target device takes a long time. The target device has limited program space and RAM. For these reasons testing of embedded software is often performed manually (if at all). We’ve been developing embedded software using TDD (and a variety of other Agile techniques) since 2009. This talk presents some of the patterns and practices that help us deal with the extra complications incurred when practising TDD in an embedded environment. It covers how we keep the feedback from our tests fast while still running tests on the target hardware. How we replace dependencies and discusses the advantages and disadvantages to the techniques shown.