Learn About TDD & BDD from the Expert - Dave Farley

All Dave’s Expertise, Teachings and Advice,
captured in Video Lessons, Worksheets and Demos, 

for YOU to Study at your Convenience, 

at Only 40% of the Price 

(compared to Dave’s in-person training events).

How Your Team Can Benefit from TDD

  • Fewer Bugs

    Stop wasting time fixing bugs and spend more time on new features, creating software that's valuable for your users.

  • Flexible Code

    Steer the design of your code from tests. Increase modularity, flexibility and the effectiveness of your systems.

  • Better Design

    Quickly design code that is more maintainable and more adaptable to change.

Test Driven Development WILL Work For You

If you think that TDD can't work for you because... 

  • Your code structure is too inflexible
  • You don't have time to spend writing tests
  • Your boss won't go for it

Think Again!


  • You invest time in writing tests rather wasting time debugging production systems.
  • Your code is easier to change because it is better designed.
  • You can make progress with more confidence, and break free from legacy constraints.
  • Confident teams suffer less burn-out and enjoy higher job satisfaction scores.


  • A better understanding of TDD and BDD, and how they combine together to improve the quality of your code.

  • The skills to write long-lasting tests that are resilient to changes in the code.

  • The knowledge to “listen to the code” and use the feedback from test creation to modify your designs for the better.

  • A 60% reduction in bugs in production.

  • More job satisfaction and time to build the software that you want to build.

  • Highly sought after Software Engineering skills that may enhance your job prospects.

  • AND MORE...

BUY "TDD & BDD - Design Through Testing" NOW

Transform your software development with TDD. Learn the necessary skills through world-class video training and practise examples with Dave Farley.

Course curriculum

  • 1

    Welcome to the course!

  • 2

    Introduction to Test Driven Development

    • Continuous Delivery Principles

    • What is Test Driven Development?

    • Red, Green, Refactor!

    • Unit Testing and the Properties of Good Tests

    • Practising Testing

    • Demo: Getting Started with TDD - String Calculator - Step 1

    • Exercise 1: Getting Started with TDD - String Calculator

    • Demo: Getting Started with TDD - String Calculator - Steps 2 & 3

    • Learning Review 1: What Have We Learned About TDD So Far?

  • 3

    How to Write Great Tests

    • TDD and the Properties of Good Tests

    • Information Sheet 1 - The Properties of Good Tests

    • Three Types of Test in TDD

    • Exercise 2: Dealing with Exceptions

    • Demo: Dealing with Exceptions

    • The Importance of Dependency Injection

    • Mocking and Dependencies

    • Exercise 3: Dependency Injection

    • Demo: Dependency Injection

    • More on Mocking

    • Testing at the Edges

    • Learning Review 2 - How to Write Great Tests

  • 4

    TDD & Behaviour Driven Development

    • BDD & The Importance of Naming

    • The Shape of Your Tests

    • Exercise 4 - Part 1 - How Tests Improve Design

    • Demo: How Tests Improve Design - Part 1

    • Exercise 4 - Part 2 - How Tests Improve Design

    • Demo: How Tests Improve Design - Part 2

    • Learning Review 3 - TDD & Behaviour Driven Development

  • 5

    TDD & Design

    • Modern Software Engineering - Focus on Design

    • Common Design Problems and Their Solutions

    • Information Sheet 2 - Fixing Common Design Problems

    • Exercise 5 - Thinking Not Just Coding

    • Demo: Thinking Not Just Coding (Part 1)

    • Demo: Thinking Not Just Coding (Part 2)

    • The Importance of Refactoring

    • Refactoring - TDD in Legacy Systems

    • Listening to the Code

    • Common TDD Smells

    • Information Sheet 3 - TDD Smells: Anti-Patterns and their Solutions

    • Acceptance Test Driven Development

    • TDD Top Tips

    • Learning Review 4 - TDD & Design

  • 6

    Course Completion

    • Congratulations!

    • Information Sheet 4 - Course References and Useful Links

    • My Feedback

    • Collection of Information Sheets

Course Testimonials

These people have learned TDD from Dave and are reaping the benefits of making better software faster.

Siemens Healthcare

“After applying TDD to a new feature on a single team in a code base area where lots of production bugs were discovered in the past, we were able to deliver that feature without any production bugs.”

Lead Software Engineer

“Valuable training on TDD and software engineering. I strongly recommend this course to anyone interested in making better software. This is not just about writing good tests, it is also (and before anything else) about design and software engineering in general. Be prepared to change your mind on several topics.”

Software Testing Specialist

“Got right to the heart of TDD. It's the D not the T that gets helped a lot... Excellent course with a big chunk of WHY in addition to the HOW.”

Vinícius Vargas

"I already write test for a while. Even so, I learn from Dave how effective writing tests first is for better architecture. The "time from safety" concept he teaches is great for us to work iteratively.”

Alessandro Fardin

"After this course, I finally introduced TDD and did a live practice with my teammates.”

Add Acceptance Testing course to Your Order

and SAVE £100!

  • £499.00

    £499.00ATDD & BDD - From Stories to Executable Specifications

    Learn the techniques for finding and capturing Stories and Examples, expressing requirements as outcomes, translating them into Executable Specifications, and building durable tests and infrastructure for Automated Acceptance Testing.
    Buy Now