Barr Group FacebookBarr Group TwitterBarr Group LinkedInBarr Group Vimeo

Course Overview

Course Length: 
3 Days

Test-Driven Development is a powerful design technique used to develop safer, more secure, and more robust embedded software. It also produces an automated regression test suite that you can use to keep your production code behaving as you intend for a long useful life. In this 3-day hands-on course, attendees will learn the fundamentals of Test-Driven Development (TDD) for embedded C programmers, and get to apply some of the concept in your code with expert guidance during the legacy code workshop. This course is ideal for embedded software developers, technical leaders and managers that want to minimize product development crises, preferring defect prevention to debugging.


Download Complete Syllabus: 

The following summary covers the major course topics and may be modified at the instructor's discretion based on the needs and pace of the class.

  • 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
  • TDD and Collaborating Modules
    • Separation of Responsibilities
    • Keeping Tests Clean
    • Tests as Detailed Documentation
    • Exercise
  • Test Fakes, Stubs, Doubles, Mocks
    • Spying on the Hardware
    • Faking the Time
    • Link-time Fake
    • Run-time Fake
  • Test-Driving Next to the Silicon with Mocks
    • The Problem Solved by Mock Objects
    • TDD One Instruction Away from the Hardware
    • Exercise
  • Workshop in your code
    • Legacy Code Mindset
    • Boy Scout Rule
    • Crash to Pass Algorithm
    • TDD and Bug Fixes
  • Legacy Code Workshop
    • Setup off-target unit test environment to support TDD
    • Work as a group getting your first code under test
    • Break in to small groups and continue adding tests
    • Wrap-up Discussion


Attendees should be experienced with the C programming language and have a general familiarity with embedded software development.

Related Courses

Find out More

To find out more about our upcoming public trainings, go to our Training Calendar.

Contact Us to find out more about this course or to enquire about an on-site training at your company.

Recording Policy

All Barr Group Training Public and On-site courses may not be audiotaped, videotaped or photographed without consent from Barr Group's executive team.  Barr Group reserves the right to record portions or all of a training course for instructional purposes.  As a result, attendees present may also appear on the recording.