TDD – Test Driven Software Development and Unit Test Cases

8-lessons on how to develop Reliable Embedded Systems Software



starting 16 September 2020

Test Driven Development (TDD) and Unit Testing (UT) are the basis of a software development path which leads to reliability and stability of software products. Developing software for embedded systems is believed to be among the most unpredictables engineering practices.
Is it possible to:

– produce predictable results?
– deliver consistently?
– avoid endless maintenance of products?

Actually, error-free software is a realistic target for any team.
In this 2-module training, Bluewind explains the rules of TDD and how to build UT-Unit Test Cases for reliable and maintainable code base.

Training details
  • The number of participants is limited.
  • Price per attendee: 750,- Eur + IVA
  • Customers could reserve the training and organize the days by contacting us
  • For further information:
Training Method

The training is organized into 8 lessons, web sessions of 4 hours, and some Q&A sessions with the expert.

  • Lessons: (4 hour each) will be held by an experienced trainer.
  • Schedule: 8:30-13:00 with a break from 10:30-11:00
  • Q&A: during the break time and before the end of the lessons will be possible to have a session of question directly with the expert

The webinar will be held on `` platform, that is a free video conference application.

Module 1 – TDD Test Driven Development

This module provides a practical introduction to TDD as a development process, and a number of examples, best practices and useful tools and tricks for the embedded world. Writing test first will become the natural way after this module.

Lesson 1: TDD Introduction
  • Test Driven Development as a Workflow
  • Unit Testing
  • Test Doubles: Stub and Fake
  • Framework: Ceedling
  • Exercise
Lesson 2: TDD in practice
  • Doubles: Mock
  • Black-box testing
  • Dual Target benefits
  • Code Coverage report tool
  • Test framework integration with Visual Studio Code
  • Techniques for embedded development
  • Exercise
Lesson 3: TDD Techniques
  • Testable code drawbacks
  • Doubles: linker vs runtime
  • Techniques for embedded development
  • Pure functions VS Side effects
  • Exercise
Lesson 4: Other test techniques
  • Static testing
  • White-box testing
  • Debugger with Unit Test
  • Exercise
Module 2 – Unit Test Cases

This module shows how to apply TDD and Unit Testing for enhancing the quality and stability of existing and new software on embedded devices. Not only a new way for writing error free software, but also a toolbox for the software maintainer (Module 1 is prerequisite).

Lesson 1: Testing the surface
  • API Testing
  • Integration testing
  • Exercise
Lesson 2: Testing the untestable
  • Legacy: testing
  • Snapshot testing
  • Exercise
Lesson 3: Finding bugs
  • Human code review
  • Pair programming
  • Memory sanitizers
  • From bug to test
  • Exercise
Lesson 4: Hardening
  • In-target testing
  • Fault injections
  • Fuzz test
  • exercise


Module 1 – TDD Test Driven Development
  • Wednesday 16 September 2020 Lesson 1
  • Wednesday 23 September 2020 Lesson 2
  • Wednesday 07 October 2020 Lesson 3
  • Wednesday 14 October 2020 Lesson 4
Module 2 – Unit Test Cases
  • Wednesday 28 October 2020 Lesson 1
  • Wednesday 03 November 2020 Lesson 2
  • Wednesday 17 November 2020 Lesson 3
  • Wednesday 21 November 2020 Lesson 4


Find here the detailed training program