top of page

Test-Driven Development and Unit Testing

Price

Inquiry

Duration

2 Days

Test-Driven Development and Unit Testing

Course overview:

The Test-Driven Development process implies in its purest form: 1st, define what/how the feature shall be tested and its interface; 2nd, implement the test, 3rd, implement code forming the feature and make its test(s) to pass; finally, 4th, refactor the code in order to fit into an appropriate standard - i.e., an architecture. The driving force behind TDD is the Unit Test.


The principal goal of unit testing, in embedded systems, is to take the smallest piece of testable code in an application - e.g., a device driver. Then isolate it from the rest of the code, and determine whether it behaves as expected. Chiefly it is the outer observable behavior we are verifying. Each unit is tested separately before integrated into higher order modules. Unit testing has proven its worth in that a large percentage of defects are identified during its use. In addition, a Unit Testing framework acts, like GoogleTest, as a robust regression mechanism, giving confidence to the developer that existing functionality, if broken, will be detected immediately.


Goal/Benefits:

This two-days training provides the participant with a number of concepts around TDD in terms of unit testing:

▪ Test-Driven Development – TDD

▪ Decoupling

▪ Software Architecture with Testability in Mind

▪ Embedded TDD Strategies

▪ DRY: Don’t Repeat Yourself!


Audience/Participants:

This training is aimed for embedded system software designers/C-programmers dealing with development of new features, as well as maintaining existing legacy systems.


Course Outline:

1

Test-Driven Development – TDD

Product Development in Industry

Realities of Embedded World

TDD in a Nutshell

TDD’s Relation with Traditional Development Model

What TDD is not

2

Designing Code with Testability in Mind

An Example System: Traffic Light

Requirements and Use Cases for Traffic Light

TDD Steps for Traffic Light

How Design evolves in TDD

Project View of Traffic Light

Dual Targeting: what, why and how

De-coupling Introduction

3

The Art of Decoupling

What, Why and How

Evidences of Decoupling

Types of Decoupling

Patterns for Decoupling

Applying mocking to verify correct behavior

Cohesion

What, Why and How

Types of Cohesion

4

Embedded TDD Strategies

The Embedded Challenge

Embedded TDD Stages

Dual Targeting – Host versus Target Environment

Dealing with Legacy Code: What and Why

How: Refactoring Steps for Legacy Code


Harald Lüning

Course leader for ""Test-Driven Development and Unit Testing"" and C/C++ courses:
Harald Lüning is one of our top course leaders, and has extensive practical and theoretical experience in C/C++ programming, object-oriented system development, and test-driven development

Harald Lüning

SELF PACED

Learn embedded systems at your own pace—anytime, anywhere!

CUSTOM COURSES

We customize embedded systems training to align with your team’s goals!

CERTIFICATES

​Our courses provide TRUE certificates, trusted by leading organizations.

Nohau_office environment5_edited.jpg
bottom of page