There are no tools to test upgrade between Puppet Enterprise 3.7 and 3.8 series. There are some methods that can be used to test a code base, though.
Do the upgrade on a scratch system where you can deploy all of your code. You should be able to setup a single All-in-One system on a small VM or unused old server hardware. Classify and run code against the temporary master itself if you have questions about function of your code.
The first thing to know is that Puppet Enterprise 3.8.6 is End-of-Life at the end of this year. This release is also designed to bridge users from the Puppet 3 language to the Puppet 4 language. The approach to upgrade and what to do afterward depends on if this the last version to deploy at the site or if eventual moving to Puppet 4 is a goal.
If there is no intent to migrate to the Puppet 4 language then the changes are minor and impact low. Puppet Enterprise 3.8.6 comes with Puppet 3.8.7 per the version table at https://docs.puppet.com/pe/latest/ove...versiontable.html. Likewise Puppet Enterprise 3.7.2 ships with 3.7.4. You can review all the changes between Puppet versions by reading the release notes at https://docs.puppet.com/puppet/3.8/re....
Of interests to this upgrade is the Puppet 4 deprecation additions and bug fixes for behavior like the
future_parser setting. Some new words became deprecated (
produces) so those start generating alerts. You will want to grep your code for these.
If you are already using the
future_parser then your code should fail on a test 3.8.6 server that includes anything not ready for the Puppet 4 language. If not you will want to install catalog preview on at least one Puppet Enterprise 3.8.6 master to run against your code base.
Puppet Catalog Preview is for testing Puppet language changes when upgrading from the 3.x version to 4.x version. It's a module you install. The module adds the catalog face to the puppet command. Catalog preview can compare two environments (usually branches in your control repository) as long as one is using the
future_parser and the other is not. The preview tool can also evaluate a single environment much like
puppet master --compile.