I would say simple run your full regression suite of tests, manual or automated. How do you normally verify that your product still works and that developers didn't break existing functionality in unexpected ways?
What my current team does is the following:
- At the beginning of a new Sprint (every two weeks) we update all version of all packages and dependencies.
- We deploy to the testing environment and run all our automated tests.
- Fix any issues we notice or rollback a version and create a task to research this further.
- Create new features for the Sprint and test these new features with high automated test coverage and exploratory testing session.
- If no issues are found we deploy the new feature and the new versions to production
This has a couple advantages and requirements:
- We are always up-to-date and any backwards compatibility issues are found fast.
- We do it as the first thing in the Sprint. This way we the developers are the first to run into any issues while building and testing these new features.
- We demand from ourselves high test coverage, currently unit + integration tests cover 92% of the code.
- We build at least one end-to-end test per feature. Automate the testing of your main happy-paths. Keep the main user flows working at all time.
- We deploy fast, so if we missed something clients will complain fast and we can rollback small changes. Clients haven't found anything yet in this project.
I would call this the continuous delivery with high automated test coverage approach. Something any sane Agile team should do :)