oldstable - The previous stable release (Jessie).
stable - The current stable release (Stretch).
testing - The next generation release (Buster).
unstable - The unstable development release (Sid), where new or updated packages are introduced.
from:
https://wiki.debian.org/DebianReleases# ... positories
Unstable is always called Sid. Once testing becomes stable, stable will be called Buster, oldstable Stretch and Jessie gets retired.
You can use both the release cycle and release name in your repositories configuration. So you can configure a repository on "testing" and that will into perpetuity refer to the current testing release. You can also use "buster", which while currently referring to the exact same packages as "testing" would, it would shift to point to the packages in "stable" repository once Buster is released as stable. There's a case for both but yeah, this can get confusing
