I totally disagree. Whether a developer catches edge case problems depends on a few things. In no particular order:
- Imagination - You've really got to try hard to dream up new ways to break the code and all the entities it touches in the system. Some are better than others at understanding how users- or background processes might use apps, i.e. in unexpected ways. So they learn the hard way, which will tend to make their code more bullet proof in future.
- Motivation - It's a matter of pride and professionalism. If you believe you were born to do this you do it right. That was me from the beginning of my career.
- Experience - Inexperienced devs are at a disadvantage; they haven't seen enough yet to go looking for the type of trouble that can occur in production. "Confirmation bias" is in play for them: "well I ran it a few times and worked as designed for me". Elementary mistake.
- Time allocated - Time pressures are a factor. You simply have to deal with this at every stage of your career and communicate effectively with your manager if you need more time. When you reach a senior level, management may actually listen to you!
As for me being angry? Nope. I'm just doing what a good analyst programmer always does, looking for the point of failure in the system. I believe the problem Apple is having with bugs is workflow-related, leading to inadequate testing which allows bugs to get into production and remain there over several releases. That is anathema to me.
Do they even have an in-house "user acceptance testing" phase? Or is that what the beta program is expected to provide? That's my best guess. If so that's just wishful thinking.
Also, "software entropy" is now in play for both macOS & iOS. They've both been around for a long time, a lot of mods, fixes, redundant code, outdated code, hard coding, and so on. Nothing that a total rewrite couldn't fix; the situation will continue to deteriorate incrementally otherwise, that's just plain logic.