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 software, 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.
Course Length
- 2 days (hands-on)
Audience
- Embedded software developers
- Technical leaders and managers
Outline
The following outline is provided as a summary of the major course topics and should not be taken as literally the section-by-subsection lecture breakdown.
- 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
- Refactoring
- Critical Skills
- Code Smells
- Envisioning
- Transforming
- Working with Legacy C
- Legacy Code Mindset
- Boy Scout Rule
- Crash to Pass Algorithm
- TDD and Bug Fixes
- Exercise
- Wrap-up Discussion
Prerequisites
Attendees should be experienced with the C programming language and have a general familiarity with embedded software development.
Find out More
Please Contact Us to find out about bringing this course to your company.
Related Courses
- Log in to post comments