The challenge for Apple, and any software developer, for that matter, is that in testing there are so many variations of equipment/software/networking in the real world that it is practically impossible for them to test every combination. So they do the Alpha testing (does it crash just running by itself) and early Beta (does it work with some of OUR software and OUR equipment), then release to the private Beta testers (does it work with YOUR software and YOUR equipment) and finally to public Beta (does it work with a larger set of software/equipment combinations). Unfortunately, too many beta testers don't report back, either because they don't realize what a Beta test is for, or because the assume that someone else will report it and it will be magically fixed. Then the release comes and the number of software/hardware combination explodes to the real world and even more previously unfound bugs crop up. The world then decries how awful Apple is and that it wasn't this way under good ol' Steve (yes, it was, you just don't remember) and how bad it has become (the cry of the ancients of all time).
Are there problems with Catalina? Yes, most assuredly! Could it have been tested more? Yes, but with steadily decreasing returns. Apple can't enforce any standards on public Beta testers, so they have to react quickly with these unfound bugs appear.
Early adopters used to know that any .0 release was just barely out of Beta, and to expect problems. Somehow, we've forgotten that. Don't want problems? Wait for .1, or .2 release.
It's been the bane of developer life ever since Grace Hopper found the very first "bug" back in 1947. And it will be the bane of developers to the end of time. There has never been, and never will be, a bug-free non-trivial piece of software.