Hi there,
As with all updates, we do have a testing period in which we invite developers and users to try the new version. In the case of 3.0, as we explained in this post:
In total we had 4 beta versions for “2.7” from December; you can check out the Beta 1, beta 2, and beta 3 posts if interested. We then had a “2.7” release candidate before deciding to move to Semantic Versioning and use 3.0.0 instead.
So testing has been happending since December. In additon, we have a set of unit tests and end-to-end tests to catch general coding issues.
Even with all of that in place, it's difficult to account for 3rd party themes and extensions. If developers are following the dev blog they should have ample warning to work on compatibility.
We have seen however that some do not, and leave testing and fixes to the last minute, or worse post-launch. With that in mind, it's still important to check your extensions are compatible before updating. Testing extension compatibility is important, especially with MAJOR releases (2.x.x -> 3.x.x).
We have a guide on preparing yourself for updates here which you may find useful: How To Update Your Site
If you run into problems after updating, we also have a self-service guide with troubleshooting steps: WooCommerce Self Service Guide.
If you do work out that one of your extensions (or theme) is not compatible, first check to see if the developer has a compatible update out, and if not, ask them to release one. You can even pass them this wiki article which has migration steps.
I hope this helps.