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
  • 116 pages
  • A Catalog of TDD Patterns
  • 14 Videos
  • 2 Exercises
  • 3 Interactive Quizzes
  • A TDD Flowchart
  • Automated TDD Critique
  • Support for Eclipse
  • Support for IntelliJ

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
Increased Productivity 27
An End To The Arguments? 28
Introducing TDD Patterns 30
Essence First 31
Essence First Video 32
Test First 33
Test First Video 34
Assert First 35
Assert First Video 36
Frame First ← Click to Preview 37
Frame First Video ← Click to Preview 38
Good Or Bad Framing? 39
Do The Simplest Thing That Could Possibly Work 40
Do The Simplest Thing That Could Possibly Work Video 41
Break It To Make It 42
Break It To Make It Video 43
Refactor Mercilessly 44
Refactor Mercilessly Video 45
Test Driving 46
Test Driving Video 47
TDD Cycle Deeper Look Video 49
Why Record? 51
The Steps You'll Take 52
Step 1. Install the Recorder 53
Step 2. Download the Exercise 54
Step 3. Import the Exercise 55
Step 4. Perform the Exercise 56
Step 5. Upload the Archive 57
Step 6. Critique Your Performance 58
Remaining Issues 59
Carry On! 60
The Purpose of this Exercise 62
Critiquing Your Performance 63
Proceed with Caution 64
Installing Our Plugin 65
Download the Code 66
Exercise Instructions 67
Upload Your Work 68
A Graph of Your TDD Activity 69
Your Critique Results 70
Your Customized Feedback 71
Our Solution 72
TDDing Big Bill's Billing System ← Click to Preview 74
Some Advice Before You Begin 75
Critiquing Your Performance 76
Installing Our Plugin 77
Setup 78
An Exercise Composed of Four Tasks 79
Task 1: Calculate A Simple Phone Bill 80
Task 2: Calculate Excess Minutes 81
Task 3: Calculate Family Discount 82
Task 4: Calculate Complete Phone Bill 83
Upload Your Work 84
A Graph of Your TDD Activity 85
Your Critique Results 86
Your Customized Feedback 87
Task 1 Solution ← Click to Preview 88
Task 2 Solution 89
Task 3 Solution 90
Task 4 Solution 91
An Alternative Solution 92
A Third Solution 93
The Secret To TDD'ing GUI's 95
The Open Dialog 96
A Naive Implementation 97
The Thick Black Line 98
Model: The Dialog Without The GUI Parts 99
Models Don't Speak GUI 100
View: All GUI, All The Time 101
How The Split Helps 102
The Meta-Pattern: Split Along TDD-Happy Lines 103
Does TDD Eliminate Formal Design? 105
What Is Design, Anyway? 106
A Massively Experienced TDD Team ← Click to Preview 107
Where's My Design? 108
Inverted Design? 109
Distributed Design 110
Incremental Design 111
The Stepwise Premise 112
Architecture 113
Architecture Story 114
Conclusion 116

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.