Debian testing is the current development cycle of Debian.

A package is installed into the testing dist from DebianUnstable automatically when a list of requirements is fulfilled:

These requirements should assure that testing is in a pretty workable state but still developing. Especially when packages get restructured, packages that are not quite releasable get into testing, so not all the fun of using a developmental version is removed.

An example of testing's unstableness is the upgrade from perl-5.6.0 to perl-5.6.1 which made perl unable to find its modules if they were from a package built with perl-5.6.0. Setting the environment variable ["PERL5LIB"] to /usr/lib/perl/5.6.0 solved the problem.

It is more unstable than DebianStable, but not as crazy as DebianUnstable.

DebianSarge is the current testing distro.

If you wonder why a package (or a particular version thereof) is not yet in testing, see http://bjorn.haxx.se/debian.