Test-Driven Development for C or C++ Training

TDD C++ Embedded

This training course helps you build knowledge, understanding and skill in the engineering practices needed to build great C or C++ code. You learn how to build flexible and modular software with very few defects, software that can have a long useful life. We teach you how to prevent defects and how to keep code clean over years of evolving needs.


  • Embedded Software Developers
  • Software Developers
  • Technical team leaders
  • Managers that want to know the technology they manage
  • Any C or C++ programmer that wants to learn TDD


  • C or C++ programming experience

Setup and Facilities Requirements

  • Bring you computer with modern web browser
  • No computer setup required
  • Exercises hosted on a private cyber-dojo.org server.

Course Outline

  • Test Driven Development
    • Why Test Driven Development?
    • What is Test Driven Development?
    • The Microcycle
    • Exercise
  • Adapting TDD to Embedded Software Development
    • Leveraging the Development System
    • Risks of Development System Unit Testing
    • Embedded TDD Cycle
    • Hardware/Platform Independence
  • Testable Designs
    • TDD and Collaborating Modules - testing the code in the middle
    • Keeping Tests Clean
    • Exercise
  • Test Fakes, Stubs, Doubles, Mocks
    • Spying on the Hardware
    • Faking the Time
    • Link-time Fake
  • Test-Driving Next to the Silicon With Mock Objects
    • The Problem Solved by Mock Objects
    • TDD One Instruction Away from the Hardware
    • Exercise
  • Refactoring
    • Critical Skills
    • Code Smells
    • Envisioning
    • Transforming
  • Working with Legacy C
    • Legacy Code Mindset
    • Boy Scout Rule
    • Crash to Pass Algorithm
  • Wrap up Discussion


09:00 - 17:00