Skip to main content
CourseFlix

TDD & BDD - Design Through Testing

5h 42m 42s
English
Paid

"TDD and BDD: Designing Through Testing" demonstrates how to make testing the driving force of development, utilizing it to create higher quality, flexible, and maintainable software. Learn to write truly effective tests and apply them as a design tool rather than as a secondary check of the finished code.

Course Overview

The course, led by Dave Farley, is based on step-by-step explanations, demonstrations, and practical exercises. It aims to help you master TDD and BDD consistently and understand how these approaches strengthen each other, leading to reduced defects and improved system architecture.

Learning Objectives

By enrolling, you will learn how to:

  • Significantly reduce the number of errors in production and spend less time fixing bugs.
  • Guide code design through tests, increasing its modularity, flexibility, and resistance to changes.
  • Create cleaner, maintainable, and evolving solutions.
  • Write durable tests that are resistant to changes in implementation.
  • "Listen to the code" and use feedback from tests to improve architectural decisions.
  • Confidently work with existing and legacy code, gradually improving its structure.

Debunking Myths

The course also addresses common myths about TDD, such as lack of time, inflexible architecture, or resistance from management. It highlights why investing in tests early on allows for faster, more reliable, and less stressful development.

Training Outcomes

As a result of this training, you will gain:

  • A deep understanding of TDD and BDD and their combined application.
  • A noticeable reduction in the number of defects in production (up to 60%).
  • A higher level of confidence in changes and releases.
  • Increased professional satisfaction and sought-after engineering skills.

Target Audience

This course is intended for developers, engineers, and technical leaders who want to build better software faster and with predictable quality.

About the Author: David Farley

David Farley thumbnail

Dave Farley — Software Engineering Expert

Dave Farley is a global expert in software engineering. He is known for his work in continuous delivery, DevOps, and modern development practices.

He co-wrote the award-winning book Continuous Delivery and the bestseller Modern Software Engineering. Many developers and teams use these books as core guides.

Key Contributions

Dave helped write the Reactive Manifesto. This document outlines how to build responsive, resilient, and scalable systems.

He also shares his knowledge through:

  • A YouTube channel on modern software engineering
  • A blog on development and delivery best practices
  • Talks at international tech conferences

Work at LMAX

Dave worked as a development manager at LMAX Ltd. The company is known for:

  • High code quality
  • Fast and reliable systems
  • Strong engineering practices

His work at LMAX shaped methods used in high‑frequency and reliable systems.

Watch Online 30 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 30 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Course Preview
All Course Lessons (30)
#Lesson TitleDurationAccess
1
Course Preview Demo
05:22
2
Continuous Delivery Principles
18:32
3
What is Test Driven Development?
14:59
4
Red, Green, Refactor!
05:47
5
Unit Testing and the Properties of Good Tests
06:44
6
Practising Testing
06:30
7
Demo: Getting Started with TDD - String Calculator - Step 1
16:30
8
Demo: Getting Started with TDD - String Calculator - Steps 2 & 3
16:09
9
TDD and the Properties of Good Tests
06:00
10
Three Types of Test in TDD
06:48
11
Demo: Dealing with Exceptions
11:56
12
The Importance of Dependency Injection
05:33
13
Mocking and Dependencies
07:42
14
Demo: Dependency Injection
20:42
15
More on Mocking
06:45
16
Testing at the Edges
08:14
17
BDD & The Importance of Naming
14:15
18
The Shape of Your Tests
09:33
19
Demo: How Tests Improve Design - Part 1
12:07
20
Demo: How Tests Improve Design - Part 2
20:29
21
Modern Software Engineering - Focus on Design
06:59
22
Common Design Problems and Their Solutions
17:08
23
Demo: Thinking Not Just Coding (Part 1)
16:17
24
Demo: Thinking Not Just Coding (Part 2)
13:33
25
The Importance of Refactoring
04:21
26
Refactoring - TDD in Legacy Systems
11:03
27
Listening to the Code
07:24
28
Common TDD Smells
13:45
29
Acceptance Test Driven Development
21:58
30
TDD Top Tips
09:37
Unlock unlimited learning

Get instant access to all 29 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Books

Read Book TDD & BDD - Design Through Testing

#Title
1Exercise 1 Getting Started with TDD - String Calculator
2Information Sheet 1 - The Properties of Good Tests
3Exercise 2 Dealing with Exceptions
4Exercise 3 Dependency Injection
5Exercise 4 - Part 1 - How Tests Improve Design
6Exercise 4 - Part 2 - How Tests Improve Design
7Information Sheet 2 - Fixing Common Design Problems
8Exercise 5 - Thinking Not Just Coding
9Information Sheet 3 - TDD Smells Anti-Patterns and their Solutions
10Information Sheet 4 - Course References and Useful Links
11TDD-BDD Info 1 - Properties of Good Tests
12TDD-BDD Information Sheet 2 - Common Design Problems and their Solutions
13TDD-BDD Information sheet 3 - Smells TDD Anti-patterns, Causes and Corrections
14TDD-BDD Information Sheet 4 - References and Links