You probably meant "Debian* comes in two flavors", but as you explained yourself, there are actually three:
* stable (non-rolling)
* testing (rolling)
* unstable (rolling)
What's interesting is that close to a freeze, "testing" is quite stable already, so pinning to its name (so bullseye as of now) allows you to keep this rolling state until it converges to the next stable.
Debian comes in five suites actually: oldstable, stable, testing, unstable, experimental. There's oldoldstable but it's practically dead but, it's there.
You can manage these suites in two different modes: rolling (suite based) or non-rolling (codename based)[1].
As you also noted, testing has a sinusoidal rolling speed. It starts rolling slowly when a stable is released. Then rolling gets faster. Then slows down (feature freeze) and stops (RC/Full freeze). Then that version becomes stable. Testing separates and whole cycle starts again.
Testing never becomes unusable. Unstable has this risk. Instead testing is always tried to be kept in a semi-rc state. Any breaking bugs is a barrier for unstable to testing migration. As a result, testing can be used as a desktop system without any big drawbacks.
[1]: Since unstable is always codenamed sid and experimental has no codename, they always roll. Similarly since stable is rolled from release to release, it doesn't quite roll but backports and volatile allows it to creep forward in a controlled manner.
I understand he meant something different: that you can use Testing in two different ways:
1) by explicitly referring to "testing" in your apt configuration. Then it's rolling forever.
2) by referring to the current "testing", so for example "bullseye".
Then you're temporarily on testing, rolling for a while until the day bullseye becomes the new stable, and then you're on stable too.
I often do this a bit ahead of a new stable on my personal laptop, to check what's coming with the new stable. I guess it's probably quite common.
What's interesting is that close to a freeze, "testing" is quite stable already, so pinning to its name (so bullseye as of now) allows you to keep this rolling state until it converges to the next stable.