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: Dave Farley

Dave Farley thumbnail

Dave Farley is a UK-based software engineer and one of the most authoritative independent voices on Continuous Delivery, TDD, and modern software engineering practice. He is the co-author of Continuous Delivery (Addison-Wesley) — the canonical reference on the discipline — and the author of Modern Software Engineering. He runs the popular Continuous Delivery YouTube channel.

His CourseFlix listing carries three Dave Farley courses: Microservices Masterclass, TDD & BDD — Design Through Testing, and Acceptance Testing — BDD From Stories to Executable Specs. The teaching style is unusually principled — Dave's material is taught at the level of an engineer who has shaped the field's literature for two decades.

Material is paid and aimed at engineers ready to take software engineering practice as a deliberate discipline. For broader content, see CourseFlix's QA & Testing and System Design & Architecture category pages.

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

#TitleTypeOpen
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

Course content

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

Related courses

  • PHPUnit: Testing with a Bite thumbnail

    PHPUnit: Testing with a Bite

    By: KnpUniversity
    It's Friday night... it's stormy... the office is empty... and you're deploying fresh code to production. Suddenly, an alarm! What!? The fences are down!? The d
    28 minutes 8 seconds
  • Testing Fundamentals [EpicWeb] thumbnail

    Testing Fundamentals [EpicWeb]

    By: Artem Zakharchenko
    In this workshop, Artem Zakharchenko, testing expert and creator of the Mock Service Worker API mocking library, will guide you through creating your own versio
    5 hours 16 minutes 16 seconds
  • Advanced Vitest Patterns thumbnail

    Advanced Vitest Patterns

    By: Artem Zakharchenko
    Do you know that feeling when a tool "clicks"? When you stop perceiving it merely as a means to an end and start using it as a true tool for creating better.
    1 hour 43 minutes 59 seconds

Frequently asked questions

What is TDD & BDD - Design Through Testing about?
"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…
Who teaches TDD & BDD - Design Through Testing?
TDD & BDD - Design Through Testing is taught by Dave Farley. You can find more courses by this instructor on the corresponding source page.
How long is TDD & BDD - Design Through Testing?
TDD & BDD - Design Through Testing contains 30 lessons with a total runtime of 5 hours 42 minutes. All lessons are available to watch online at your own pace.
Is TDD & BDD - Design Through Testing free to watch?
TDD & BDD - Design Through Testing is part of CourseFlix's premium catalog. A CourseFlix subscription unlocks the full video player; the course description, table of contents, and preview information are available to everyone.
Where can I watch TDD & BDD - Design Through Testing online?
TDD & BDD - Design Through Testing is available to watch online on CourseFlix at https://courseflix.net/course/tdd-bdd-design-through-testing. The page hosts every lesson with the integrated video player; no download is required.