Test-Driven Development for Embedded C Training

This training course helps you build knowledge, understanding and skill in the engineering practices needed to build great 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.

Course Length Options


  • Software Developers
  • Technical team leaders
  • Managers that want to know more about the technology they manage

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
    • Object Oriented Principles Applied to C
    • TDD and Collaborating Modules - testing the code in the middle
  • Test Fakes, Stubs, Doubles, Mocks
    • Spying
    • Faking the Time
    • Link-time Fake
    • Exercise
  • Keeping Tests Clean
    • Test Smells
    • Tests as Detailed Documentation
    • Exercise
  • Test-Driving With Mock Objects
    • The Problem Solved by Mock Objects
    • Setting Expectations
    • Exercise
  • Refactoring
    • Critical to a Healthy Business
    • Critical Skills
    • Code Smells
    • Envisioning
    • Transforming
  • Working with Legacy Code
    • Legacy Code Mindset
    • Boy Scout Rule
    • Incremental Improvement
    • Legacy Change Algorithm
    • Crash to Pass Algorithm
  • Wrap up Discussion
  • Optional Workshop in your Code Begins

This course will get you and your team well on the way to applying TDD in your C development efforts.