Reading the comments, there's nothing wrong with using IObit Uninstaller Pro or Revo, or many of the competing uninstaller apps, but do realize that none of them will remove 100% of the installation changes made by every single app. The only software that can do that is written specifically for certain programs &/or drivers, e.g. many security software companies have a software tool to completely remove their products, &/or DDU is designed to remove remaining traces of graphics drivers. While software like IObit Uninstaller Pro will not remove every trace, that's actually not a bad thing, as removing too much can cause far more problems than leaving some traces of uninstalled apps behind. Nonetheless, when the ad copy says: "all leftovers can be removed completely from your computer just like they were never installed in your PC", that's just not true.
guru3d[.]com/files-details/display-driver-uninstaller-download.html
Here's why...
To undo or remove every change that's made when you installed an update or program you have to know every change that was made, and in situations where a file or files are replaced, you have to have a copy of the old file(s), or install the latest version of that file or files. When you install some software shared files are also installed -- shared files are just that, available for any other app that wants to use them. If you've just installed a program that included shared files, removing those shared files isn't likely to cause any problems -- the software you have installed already worked fine without them. But what if those shared files were installed a year ago? How many of the apps you've installed since then use them?
Those are good reasons that even uninstall apps that let you record the changes made when you install software &/or updates won't remove everything either. Nor will they show you a complete list of all the changes that were made. If you want to record everything then you have to do it yourself -- one way is to use the open source Regshot, though it is not a perfect solution. Regshot takes before & after snapshots, then gives you files listing the changes -- you set it to monitor the registry &/or the files in target folders. One of the files Regshot can give you reverses many of the changes made to the registry, but use it with some caution [if you use it at all], at the very least setting a restore point, but preferably after a backup.
sourceforge[.]net/projects/regshot/
howtogeek[.]com/198679/how-to-use-regshot-to-monitor-your-registry/
Note that comparing snapshots does not tell you what software does during installation or while running -- it can only tell you what files have changed & how the registry has changed -- so it's not a foolproof method of telling you whether software is malicious. What I think is the biggest limitation of before & after file snapshots is that they can take quite some time if you've got a lot of files on the drive partition you're monitoring, e.g. if you've got a lot of software installed. The biggest limitation of registry snapshots is that during software installs you can sometimes have tens or even hundreds of thousands of temporary registry entries, & when that happens the results of snapshot comparisons are usually effectively useless.
There is software that records every change to the registry &/or hard drive partition(s), but then you run into the same sort of problem in that gives you too much irrelevant data that has to be sifted through. As it is when you install &/or run a program for the 1st time there are some registry entries created or modified that have more to do with Windows than with the program itself... there are cache & history entries for example, & if you have System Restore turned on, you might get loads & loads of VSS entries too. And AFAIK there's no definitive lists that you can find anywhere telling you what registry entries matter, which can be removed, or which should be ignored as irrelevant [e.g. UserAssist & MUI cache], so it's a matter of experience with a small dose of luck, since a educated guess is still a guess.
If this installing & removing software stuff seems like a huge mess, it really is. Microsoft is at fault, and their prior attempts to fix some parts of it have never made a huge difference. They have decided [finally] that it's a good idea to copy Android, & package apps for easier installation & complete removal, and that's part of what their new Universal Windows Platform [UWP] does. Still, at the moment it's more a glimmer of hope than anything else, since software developers have been reluctant to use it [to put it mildly]. A look through the Windows Store using 10 doesn't show you loads of quality software you'd want to have [again to put it mildly].
What I do is use a couple few minimal VMs [Virtual Machines] to monitor installing & running software. What everyone can do is use Regshot with every install, saving the files it gives you -- I often save them in the folder with the just added app. At worst it takes a few moments of your time. Later it may help you remove an app, or fix a problem... when it comes to fixes, the scenario I've seen most often is a new version of a program won't install or work properly because of the registry entries made by an older version.
The reason I use minimal VMs is that with minimal software installed, snapshots happen faster, & if an app installs a common file I can still record it -- if an app adds a file you already have installed, it won't show up comparing snapshots, because that file hasn't changed. Knowing that an app installs a common shared file(s) tells me that it will be added to any copies of Windows we have that don't have that file already. As possible I also like to use an XP VM, because there are sometimes magnitudes fewer new garbage registry entries from the install.