Price 6,229 ILS


Course Overview

The TDD (Test Driven Development) course is a deep dive into a SW development methodology where tests drive the design and the coding of the SW. The course starts with an overview of the best practices in Unit Testing, and then provides a detailed overview of TDD. We start from a simple step-by-step example and build up the complexity with each additional example. Besides the core concepts of the methodology, the material covers advanced topics such as TDD and legacy code, TDD in multithreaded environment and TDD for embedded SW.
The course examples are in C++ and the gtest framework if used for the exercises, however the methodology is applicable to any development environment. The material includes step-by-step examples as well as hands-on exercises.
This is a 3-day course.

Who should attend?

SW developers who would like to learm about Unit Testing, SW developers who are familiar with Unit Testing and would like to make an additional step forward and use tests to drive their development, SW leads who would like to make Unit Testing and TDD an integral part of their team’s day-to-day work.

Course Outline:

1. Introduction

2. The Unit Testing concept
• Definitions
• Comparison with other test types
• Best Practices
• gtest basics
– Macros, test fixtures
– Exercise

3. TDD basics
• Basic principles
• Simple example – step by step walkthrough
• Exercise

4. TDD and Unit Testing advances topics
• gtest advanced topics
– Advanced error message formatting
– Advanced assertions
– Death tests
– Parametrized tests
– Exercise
• TDD advanced topics
– Getting started
– Step size
– Test content – best practices
– Refactoring
– TDD with legacy code
– TDD in multithreaded environment
– Exercises (1 or 2)

5. TDD and embedded SW
• Best practices
• Example6. Mock Objects
• Concept definition
• googlemock
• Examples
• Exercise
• googlemock advanced topics
– Mocking in complex cases
– Advanced matching, actions7. TDD Discussion
• Open discussion, possible topics
– Impressions from the course
– Concerns regarding the method
– How to start, keep going with TDD
– Q&A

8. Summary