Notes I made for a potential handbook page on upgrading Drupal sites from one major version to another (e.g. Drupal 6.x to 7.x).
strategize your upgrade
which contributed modules do you have installed?
group them into two:
which modules are absolutely required for the smooth functioning of the website
which modules are not
identify which ones have updated versions of the modules
these may be developmental versions not ready for prime time
official releases may have more/different features than you're used to
modules without release may be in progress. Look in the issue queue for work on the module version that is compatible with the version of Drupal core you are upgrading to. If there isn't one yet, create an issue in the queue enquiring about a D7 release.
what custom modules and/or themes do you have? They will require some changes to the underlying code: visit the instructions for upgrading themes and the instructions for upgrading modules.
If the site had multiple contributors, make sure everybody knows ahead of time that an upgrade is planned and how long you expect it to take. You will have an idea of this after doing some test runs.
This is an excellent opportunity to backup files and database. Not only that, but a backup will allow you to revert to a known, working state before you attempt the upgrade.
install Drupal in a separate file system
take the opportunity to setup in the proper way, whatever that may be. An example:
all modules in sites/all/modules
all themes in sites/all/themes
move settings.php to site-specific folder sites/example.com/settings.php
test run the upgrade, make notes about error messages and unexpected behaviour you encounter. Repeat until it is smooth.
create a new database and import the backup you made into that database, setup settings.php to use that database
communicate with everybody involved in the site about the upgrade
put your site into maintenance mode so that regular users cannot add content during the alloted hours
communicate throughout as to the progress of the upgrade
run update.php, and make note of all messages that result.
visit the status report and make any adjustments that are necessary