Resources About Test-Driven Development
Here's a comprehensive list of resources for anyone who wants to learn Test-Driven Development:
Must-Read Books
Test Driven Development: By Example by Kent Beck - The foundational book that introduced TDD. Beck walks through practical examples and explains the Red-Green-Refactor cycle.
Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce - Advanced TDD showing how to design complex systems using outside-in TDD and mock objects.
The Art of Unit Testing by Roy Osherove - Comprehensive guide covering test structure, naming conventions, and avoiding common pitfalls.
xUnit Test Patterns by Gerard Meszaros - Encyclopedia of test patterns and refactoring techniques.
Clean Code by Robert C. Martin - Essential chapters on testing and TDD supporting clean code principles.
Working Effectively with Legacy Code by Michael Feathers - Critical for applying TDD techniques to existing codebases.
Refactoring: Improving the Design of Existing Code by Martin Fowler - Essential companion to TDD for the refactor phase.
Test-Driven Development with Python by Harry Percival - Excellent for Python developers wanting to learn TDD with Django.
Modern C++ Programming with Test-Driven Development by Jeff Langr - TDD specifically for C++ developers.
Professional Test Driven Development with C# by James Bender and Jeff McWherter - .NET-focused TDD guide.
Online Resources & Blogs
Martin Fowler's website - Authoritative articles on TDD, testing strategies, and software design.
Main site: https://martinfowler.com/
Testing Guide: https://martinfowler.com/testing/
TDD Overview: https://martinfowler.com/bliki/TestDrivenDevelopment.html
"Is TDD Dead?" series: https://martinfowler.com/articles/is-tdd-dead/
Test Pyramid: https://martinfowler.com/articles/practical-test-pyramid.html
Test Double Blog - High-quality articles about testing practices and TDD philosophy.
Roy Osherove's Blog - Creator of "The Art of Unit Testing" shares practical TDD insights.
TDD Kata 1 (String Calculator): https://osherove.com/tdd-kata-1
Uncle Bob's Blog (Clean Coder) - Robert C. Martin's insights on TDD and clean code practices.
Michael Whelan's Blog - Practical TDD tutorials and kata explanations.
TDD Katas collection: https://www.michael-whelan.net/code-katas-for-practicing-tdd/
Agile Technical Excellence - Modern TDD practices and design thinking.
https://agiletechnicalexcellence.com/
Video Content & Courses
Kent Beck's TDD Screencasts - Original creator demonstrating TDD with live coding.
"TDD: Where Did It All Go Wrong" by Ian Cooper - Essential conference talk addressing TDD misconceptions.
Gary Bernhardt's "Destroy All Software" - Advanced TDD concepts and testing strategies.
Clean Coders Series by Robert C. Martin - Professional TDD training videos.
Top TDD Online Courses (2024) - Curated list of best TDD courses.
https://medium.com/javarevisited/5-best-online-courses-to-learn-test-driven-development-in-2023-2c6aaa06d39
Practical Learning & Katas
Codewars TDD Katas - Practice TDD with structured exercises.
TDD Kata Collection: https://www.codewars.com/collections/tdd-katas
General TDD Kata: https://www.codewars.com/collections/tdd-kata
Cyber-Dojo - Collaborative TDD practice environment with immediate feedback.
GitHub TDD Kata Repositories - Community-contributed TDD exercises.
https://github.com/topics/tdd-kata?o=desc&s=updated
Elewa Academy TDD Katas - Structured learning path with 3-4 katas per week.
https://elewa-academy.github.io/Fundamentals/10-tdd-katas/
Clean Code Developer School Coding Dojo - Monthly challenges and solutions.
https://ccd-school.de/coding-dojo/
Coding Dojo - Community site with various kata exercises.
https://codingdojo.org/
Legacy Code Refactoring Dojo - Specialised exercises for legacy code.
https://philippe.bourgau.net/a-coding-dojo-exercises-plan-towards-refactoring-legacy-code/
Popular TDD Katas
String Calculator - Basic arithmetic with evolving requirements
Bowling Game - Score calculation with complex rules
Roman Numerals - Number conversion exercises
FizzBuzz - Classic programming exercise adapted for TDD
Gilded Rose - Legacy code refactoring kata
Tennis Game - Score tracking with business logic
Mars Rover - Object-oriented design with TDD
Word Counter - Text processing with multiple delimiters
Prime Factors - Mathematical algorithms with TDD
The key is starting with Kent Beck's foundational book, practicing with katas regularly, and gradually expanding into language-specific resources and advanced techniques. Regular practice through coding exercises is essential for developing TDD muscle memory and understanding when and how to apply the methodology effectively.