So as I set my JAVA_HOME to a 1.4.2 JDK just now, it triggered a series of thoughts about how I might test upgrading the java version of our (J2EE / Websphere) application in a more pragmatic way than just ‘upgrade and do a full regression’ (which is how we did it at HP). This is an entirely theoretical list, but I think I might approach it in the following way.

Before any major feature work is done…

  1. reset the JAVA_HOME environment variable to the new version
  2. acquire (and rebuild if necessary) new versions of 3rd party jars if necessary — no need to bite of more than we can chew at once
  3. recompile – in theory there should be no errors (but if there is, of course you will address those), but if anything you are currently using throws a deprecation warning then that section should be refactored to use the replacement method
  4. repeat the above step until you get a clean build – no errors, no warnings
  5. run all unit tests and fix until they all pass
  6. start feature work and testing
  7. regression test componenets that were not touched by the feature work

If you have any steps I missed (or think this approach is complete hooey, leave a comment)