Oui enfin y'a testing entre les deux, passer de stable à unstable c'est extrême 
Pour stable les paquets sont gelés vers la fin du cycle, donc ils ont quelques mois de retard pendant la grosse partie du cycle, et à partir du moment où ils sont gelés ils évoluent plus jusqu'à la version suivante (en général 3 à 8 mois).
Unstable c'est en rolling release, c'est tous les paquets totalement à jour.
Testing c'est les paquets d'unstable une fois qu'on a réparé les bugs ou et testé pendant une bonne quinzaine de jours, ou mis sans réparation si les bugs n'affectent pas la stabilité du système.
Et oui, tu peux passer d'un niveau inférieur à supérieur facilement (donc stable -> testing -> unstable), tout en prenant des paquets supérieurs depuis une version inférieure (tu peux prendre certains paquets d'unstable dont tu as besoin en étant en stable, par exemple). Par contre l'inverse est plus délicate, faut faire un peu plus de manipulation pour rétrograder des paquets à un niveau inférieur, et le passage de tout le système à un niveau inférieur est peu recommandé.