By Mike Hill, Joshua Kerievsky

How can you increase the speed and joy of software development while decreasing the stress of modifying code? Test-Driven Development can help! TDD is a rhythm, a design technique, a development process and a revolution, all in one.



Get this Album

Volume Licensing

Have Any Questions?

Highlights

Code with Confidence: Learn & practice Test-Driven Development to improve your code quality and speed. Learn more...
Instant Critiques: Take a TDD exercise and get instant feedback from our automated band of experts. Learn more...

Expert Videos: Learn tools & techniques by watching short videos from industry experts. Learn more...
Integrated Forums: Ask questions, get expert replies and read fascinating discussions. Learn more...

Includes

  • 3-5 hours of content
  • 107 pages
  • A Catalog of TDD Patterns
  • 14 Videos
  • 2 Exercises
  • 3 Interactive Quizzes
  • A TDD Flowchart
  • Automated TDD Critique
  • Platform-independent code
  • Support for Visual Studio
  • Support for Eclipse CDT
  • Uses Google Test

Contents

You Are Here 3
Test-Driven Development In One Sentence 4
Some TDD -Isms 🎦 5
Why Adopt TDD? 6
This Album 7
A First Look At The TDD Cycle 🎦 ← Click to Preview 9
Keyword: Red 10
Getting To Red 11
Keyword: Green 12
Getting To Green 13
It Isn't Easy Getting to Green 14
Keyword: Refactor 15
Refactorings In The TDD Cycle 16
Refactoring Is Critical 17
Keyword: Integrate 18
Integration 19
Continuous Integration 20
This Will Never Work! 22
We Only Have Hard Defects Here 23
It All Boils Down to Expectations… 24
TDD Will Not Validate Our System 25
Tests+Code > Just Code ← Click to Preview 26
An End To The Arguments? 27
Introducing TDD Patterns 29
Essence First 30
Essence First Video 🎦 31
Test First 32
Test First Video 🎦 33
Assert First 34
Assert First Video 🎦 35
Frame First ← Click to Preview 36
Frame First Video 🎦 ← Click to Preview 37
Do The Simplest Thing That Could Possibly Work 38
Do The Simplest Thing That Could Possibly Work Video 🎦 39
Break It To Make It 40
Break It To Make It Video 🎦 41
Refactor Mercilessly 42
Refactor Mercilessly Video 🎦 43
Test Driving 44
Test Driving Video 🎦 45
Summary of the Patterns 46
TDD Cycle Deeper Look Video 🎦 48
Why Record? 50
The Steps To Take 51
Step 1. Download the Exercise 52
Step 2. Import the Exercise 53
Step 3. Perform the Exercise 54
Step 4. Upload the Archive 55
Step 5. Critique Your Performance 56
Remaining Issues 57
Carry On! 58
The Purpose of this Exercise 60
Critiquing Your Performance 61
Proceed with Caution 62
Download the Code 63
Exercise Instructions 64
Upload Your Work 65
A Graph of Your TDD Activity 66
Your Critique Results 67
Your Customized Feedback 68
Our Solution 69
TDDing Big Bill's Billing System ← Click to Preview 71
Some Advice Before You Begin 72
Setup 73
An Exercise Composed of Four Tasks 74
Task 1: Calculate A Simple Phone Bill 75
Task 2: Calculate Excess Minutes 76
Task 3: Calculate Family Discount 77
Task 4: Calculate Complete Phone Bill 78
Task 1 Solution 🎦 ← Click to Preview 79
Task 2 Solution 🎦 80
Task 3 Solution 🎦 81
Task 4 Solution 🎦 82
An Alternative Solution 83
A Third Solution 84
The Secret To TDDing GUIs 86
The Open Dialog 87
A Naive Implementation 88
The Thick Black Line 89
Model: The Dialog Without The GUI Parts 90
Models Don't Speak GUI 91
View: All GUI, All The Time 92
How The Split Helps 93
The Meta-Pattern: Split Along TDD-Happy Lines 94
Does TDD Eliminate Formal Design? 96
What Is Design, Anyway? 97
A Massively Experienced TDD Team ← Click to Preview 98
Where's My Design? 99
Inverted Design? 100
Distributed Design 101
Incremental Design 102
The Stepwise Premise 103
Architecture 104
Architecture Story 105
Conclusion 107

Related Items

Supported Browsers

  • Latest Firefox
  • Internet Explorer 8+
  • Latest Chrome
  • Latest Safari

Operating Systems

  • Windows
  • Linux
  • Mac OS X

Development Tools

You can use whatever developments tools you prefer. If you do use an IDE (Integrated Development Environment), many (though not all) of our labs come with projects pre-configured for Eclipse, IntelliJ and Visual Studio.

Speakers or headphones are required for our videos.

Flash is required to view charts or watch videos — download for free.