Test Driven Development for Embedded Programmers Course
Test Driven Development (TDD) is a powerful technique for building reliable software. This hands-on course teaches the best practices of TDD with a focus on the challenges unique to testing embedded C or C++ programs, such as concurrent hardware and software development, long download/reflashing times, and restricted visibility. The course shows how TDD can be used to reign in unpredictable schedules as well as reduce bugs.
Length/Options
- 2-3 days (hands-on)
- Available in C and C++ variants
Audience
- Embedded software developers
- Technical leaders and managers
Prerequisites
- Familiarity with the C or C++ programming language
- Familiarity with embedded software development
Related Courses
- RTOS Alternatives
- Embedded Software Boot Camp
- Implementing Effective Code Reviews
- Developing Effective Coding Standards
- Team-Based Firmware Development
- Hardware Interfacing with C
- Embedded Programming with C++
Outline
- Test Driven Development
- What is TDD?
- Why TDD?
- The Micro-Cycle
- Exercise - Test-driving a Standalone Module
- Special Considerations for Embedded
- Leveraging the Development System
- Risks of Off-Target Tests
- Embedded TDD Cycle
- Hardware/Platform Independence
- Testable Designs
- Object-Oriented C
- TDD and Collaborating Modules
- Test Fakes, Stubs, Doubles, and Mocks
- Managing Hardware Dependencies
- Self-Validating Mock Objects
- Setting up a Root Directory Structure
- Exercise - Test Doubles
- Refactoring
- If the Test Smells, the Code Smells
- Critical Refactoring Skills
- Incremental Improvement
- Exercise - Refactoring
- Architectural Vision and Implementation Delivery
- The Big Picture
- Vertical Slices
- From Specific to General
- Exercise - Bringing it All Together
- Wrap-Up/Discussion
Learn More
To request pricing or dates, or for more information about this course, contact us.
