Originally Posted by jailbait
Debian addresses this situation by providing three different versions at any given time. The stable version of Debian (currently wheezy) is rock solid and only contains well tested software. The testing version of Debian (currently jessie) contains more recent releases of software packages and is less stable than the stable version. The third version of Debian (currently Sid) contains software freshly released by the developers and is fairly buggy.
This isn't strictly true -- the packages in Testing are migrated from sid after ~10-14 days (generally speaking) and this lag means that sid gets bug fixes much quicker than Testing.
If something is broken in Testing it stays broken for a while; in sid a new version is pushed out pretty much straight away.
I have run both Testing and sid and IMHO sid is more reliable and the better option for day-to-day use.
Debian themselves recommend using sid if you want new software versions.
Testing is for testing the next version of Stable.
This is from the Debian website FAQ on "Which Debian distribution is best for me":
If security or stability are at all important for you: install stable. period. This is the most preferred way.
If you are a new user installing to a desktop machine, start with stable. Some of the software is quite old, but it's the least buggy environment to work in. You can easily switch to the more modern unstable (or testing) once you are a little more confident.
If you are a desktop user with a lot of experience in the operating system and does not mind facing the odd bug now and then, or even full system breakage, use unstable. It has all the latest and greatest software, and bugs are usually fixed swiftly.
If you are running a server, especially one that has strong stability requirements or is exposed to the Internet, install stable. This is by far the strongest and safest choice.
As you can see, Testing is not recommended for anyone
-- it is the pure development version and not really intended for general use.
Also, Unstable will always be called "sid" -- it is named after the character in Toy Story who broke all the toys
EDIT: And of course this is further complicated by the fact that jessie is currently frozen and slated to transfer to Stable in summer (ish) -- if you have a sources.list with "Testing" sources you will be in for a very "interesting" ride once jessie transfers and a flood of new packages enter Testing.
It is generally recommended not to use Testing at all for a month or so after the transfer.
If, on the other hand, you have "jessie" in your sources.list you will be using what is essentially a non-bug-fixed and poorly tested version of Stable -- no new packages are going to be introduced to jessie, ever.