I second the test system. My first Alfresco "upgrade", I really didn't understand what a can of worms I was opening. I just did it on the production server and at the end of very long weekend I was just happy to be able to restore it to the state I found it before people came into work. I did get the details worked out though, so another long weekend got it done (although, somehow I ended up with an old version of PostGres in place…).
I'm working on our next upgrade now, with a test server and I've run the process probably 2 dozen times now on it, fine tuning, finding odd bugs that happen if you don't do things in exactly the right sequence, etc. Document is just about finalized, and runs 2 full printed pages of all the specs, sequence, mods, etc that we depend on in our operation.