Test-Driven Development for C or C++ Training | Remotely Delivered via Web Meeting

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.

This course is a good option for individuals trying to sharpen skills, or small teams where an on-site class is not a good fit. It is also a good way for your team to get started and to know us better.

Dates, Times and Cost

Scheduled Courses (1)
October 3,4,5, 2017 (Tuesday to Thursday)Convenient for American Timezones08:00 to 01:00 CT (US Central/Chicago time) Sign up
  • Interested, but these dates and times don't work? Or you just want more informations? contact us.
  • You can join our mailing list to be notified of coming public courses and new articles.
  • We plan courses for USA and European timezones.
  • Price: $1000 per learner
  • See the attendee preparations for this remote training course.

  • How is this delivered?

    This course is delivered over the web, with James Grenning teaching live. The meeting will be hosted by WebEx. Exercises are done on a customized cyber-dojo.org cloud based server. James can see every line of code you write.

    Course Details

    • Three 5 hour Sessions over three consecutive days - Hands-on exercises
    • Languages C or C++


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


    • C or embedded C programming experience

    Setup and Facilities Requirements

    • High speed internet for Web meeting
    • 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
    • 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
      • Runtime Fake
    • Test-Driving Next to the Silicon With Mocks
      • 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
      • Learning Tests
      • TDD and Bug Fixes; Exercise
    • Wrap up Discussion