Translation(s): English - Español - Français - Italiano - Svenska - Português (Brasil) - Русский - Українська - 简体中文(Chinese) - Korean

DebianReleases > Debian Testing

How Debian Testing Works

Packages from Debian Unstable enter the next-stable testing distribution automatically, when a list of requirements is fulfilled:

For more in depth information see the official Debian Testing web page:

These requirements should assure that the next-stable packages in testing are both reasonably current and in a pretty workable state. Still, sometimes, especially when packages are being restructured, packages that are not quite releasable may get into the next-stable distribution. So, there may remain some of the fun of using a constantly evolving development distribution.

How to use Debian (next-stable) Testing

First thing is to assess the current state of testing. Have a look at the recent topics in the debian-testing mailing list archive and the Status/Testing Wiki-Page. Besides using these specific resources you can also use the general debian-user and debian-devel mailing lists, IRC channels #debian or #debian-next, and of course the debian bug tracker. You may also have a look at the DebianDesktopHowTo.

How to install Debian (next-stable) Testing

The reliable way to install testing from scratch is to do a minimal installation with the stable installer, then upgrade from stable to testing (see below).

There are also weekly builds and daily builds image available that allow you to install Debian Testing directly. Some of these are netinstall iso images that require internet connection during installation.

Alternatively, you could use the testing image of the debian-installer, but note that the testing installer is more for testing the installer than for installing testing. Bugs in the testing installer should be filed against the debian-installer pseudopackage.

How to upgrade to Debian (next-stable) Testing


Please always upgrade to Debian Testing from current stable. Upgrading from oldstable is not supported and might encounter unexpected errors.

To upgrade to testing from current stable, if you have already installed the stable release:

  1. Edit your apt sources, changing 'stable' (or bookworm, the current codename for stable) to 'testing' (or trixie, the current code name for the next stable release).

  2. Edit your security updates apt sources (anything with in it) by changing 'stable' or bookworm to 'testing' or trixie.

  3. Remove, disable or comment out any other stable-specific apt sources, like *-backports or *-updates.
  4. Verify that your installation is not fixed to a specific release in /etc/apt/apt.conf.d/00default-release

The code name for the next stable release, e.g. "trixie", will track "trixie" through its transition into "stable" and later oldstable, while "testing" will keep rolling on after a new stable release. If you would rather track the Trixie release as it becomes stable, update your apt sources replacing "stable" or "testing" with "trixie".


If you are tracking testing or the next-stable code name, you should always have a corresponding deb <"testing" or codename>-security main entry in your apt sources. When using the codename, after the release you will want security updates, and you will probably forget that they aren't enabled yet. When using testing, the security suite is usually empty, but it still may get updates for big/bad issues, especially during the later freeze time close to a new stable release, or during long transitions. The repository is very very unlikely to not be empty, but it could still happen.

After installing or adjusting the software sources, run apt update && apt upgrade regularly to get new versions and security updates. If you notice that some packages are not upgraded you should also try apt full-upgrade, but beware that this command will also install or remove packages, so do check carefully all proposed actions before proceeding.

Best practices for Testing/Sid users

Please, have a look at the best practices for Testing/Unstable users, and consider implementing them.

Best practices for Testing users

It is a good idea to include unstable and experimental in your apt sources so that you have access to newer packages when needed. With the APT::Default-Release apt config setting or with apt pinning you can have packages from testing by default but if you manually upgrade some packages to unstable or experimental, then you will get upgrades within that suite until those packages migrate down to unstable or testing. The apt pinning needs priorities lower than 990 and equal to or higher than 500 for this to work nicely. You can also pin some packages to unstable/experimental that you always want the latest versions of.

It is a good idea to install security updates from unstable since they take extra time to reach testing and the security team only releases updates to unstable.

For some packages almost every upload to unstable is a security update, so you can just pin those to unstable directly, add /etc/apt/preferences.d/security:

Package: src:chromium src:firefox src:firefox-esr src:linux src:linux-signed-amd64
Explanation: these packages are always security updates updated in unstable first
Pin: release a=/^(unstable|unstable-debug|buildd-unstable|buildd-unstable-debug)$/
Pin-Priority: 980

For other packages, if you have unstable in your apt sources but pinned lower than testing, you can automatically add temporary pinning for packages with security issues fixed in unstable using the output of debsecan.


An example of the kinds of temporary breakage that may happen in next-stable testing was 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. However, by setting the environment variable PERL5LIB to /usr/lib/perl/5.6.0 manually one could solve the problem even before the fixed package entered testing.

Testing changes more often than stable, but not as crazily as unstable, so expect that new stable versions of the programs you use will be installed as soon as they are ready for next-stable testing, except when testing gets "frozen" to prepare for an imminent stable release. See also DebianStability.

Compared to stable and unstable, next-stable testing has the worst security update speed. Don't prefer testing if security is a concern.

You can see what distribution an alias is tracking by looking at the Release file; e.g.:

If you wonder why a package (or a particular version thereof) is not yet in testing, see the testing migration excuses for the package. the testing migration excuses for the package.

How does ''Testing'' become the new ''Stable'' release ?

see DebianReleaseFAQ.

See also