As you can guess, based on my involvement with tracking software portfolios, this question leans more on how do you ensure you don't miss something?
There are many ways to perform testing before you deploy a new operating system, and as interesting as they are, this is not a discussion of those testing approaches. Instead I will explain how we use our inventory system (with modification) in order to help track the status of testing as it completes (or fails). This should allow us deploy faster with a better understanding of what works and what does not.
How do you ensure you test full functionality before deployment?