TDD Problems

Welcome to TDD Problems!

The aim of this site is to contain a growing collection of software problems well-suited for the TDD-beginner and apprentice to learn Test-Driven Development through problem solving.

All problems fulfill the following set of rules:
  • they are real-world, not just toys
  • they are targeted towards learning TDD (that is: they are small and easy enough to work out in say half a day)
  • they don't involve any of the harder-to-test application development areas: GUI, database or file I/O. (since those topics are considered too hard for the TDD-beginner)
  • they have been solved by a TDD-practitioner previously, proving their appropriateness for this site
If you know of a problem that fits the above description, please join the mailing list  and ask for an invite to edit this site.

If you don't know the slightest thing about TDD
, one place to start learning is wikipedia: Test-driven development.

Frequently asked question: "Why aren't there any solutions to the problems?"
Answer: There are several reasons. One being that this site is a spare-time project, and writing well-documented solutions takes a lot of time. The more important reason however, is that you learn by doing, not by reading. Also, there really is no one solution to rule them all to any problem; you go ahead and try your way! That is the way to learn software development. And last but not least: if there were solutions it would spoil the fun for you!

TDD Problems was created in response to the need to collaboratively collect problems suitable to learn the development technique called Test Driven Development (TDD).  You can read the initial thread on the testdrivendevelopment@yahoogroups.com mailing list. Follow the instructions if you want to join the mailing list.