The lifecycle sets the rhythm
TYPO3 follows a fixed pattern: every LTS version is actively maintained for a period, after which security fixes are only available through ELTS for a fee, and eventually that ends too.
Keep an eye on it and updates can be planned and budgeted. Ignore it and you usually find out at the worst possible moment. We keep the current dates in the version overview, straight from the official source.
Why the extensions decide the effort
The TYPO3 core itself updates comparatively well. The effort arises at the edges: with extensions from the repository that have not been adapted yet, and with custom code that relies on functions which no longer exist.
So there is always a list at the beginning. Every installed extension is assessed on its own: is there a compatible release, is the project still active, is the feature still in use. Experience says a portion of them falls away with no replacement, because it was installed once for an occasion and forgotten afterwards.
Testing means more than looking at the frontend
Between major versions, a good deal changes in the backend too: in content elements, in backend layouts, in permissions and in the way files are managed.
So before the switch we walk through the editorial side, with the same permissions the editors will have. Errors that only occur while editing do not show up in a frontend test. They show up on the first working day afterwards.