1- Install Zen Cart on your test server make all the tweaks and changes there.
2- Create a backup of your database using either phpMyAdmin (from your hosting company's control panel) or via your admin panel (if you have a backup option)
3- Simply take all the files the way they are and upload them to your new host. BE SURE TO INCLUDE THE "zc_install" folder.
4- Create a database on your new server, so that you have a place for your Zen Cart data to be stored.
5- Use your browser to access the zc_install folder on your NEW host. Install Zen Cart by walking through all the screens as if you were doing a fresh install. Be sure to specify the NEW server's information (most will be detected for you) and database credentials. You can quit the install when you get to the "Store Setup" screen.
6- Using phpMyAdmin, restore your old site's database into the new database you created in step 4.
7- Make the necessary path changes in the includes/configure.php and admin/includes/configure.php
Pay specific attention to HTTP_SERVER, DIR_WS_CATALOG, DIR_FS_CATALOG, DIR_FS_SQL_CACHE and their variants, to ensure you have the correct new path.
Be sure to check that your DB_PREFIX settings match the database ... ie: use the same DB_PREFIX in the "new" file as exists in the "old" one you're copying data from.
Also, remember that if you're uploading edits to these files you may need to change the file-permissions to "writable" temporarily in order to do the upload. Be sure to put them back to the proper settings when done.
8- You may POSSIBLY need to also synchronize your cache settings between the configure.php and database. You can do it automatically with the Fix-Cache-Key tool
or manually by editing and run the following query in phpMyAdmin so that your admin-related sessions are handled properly:
UPDATE configuration set configuration_value='/path/to/my/zen/cache/folder' WHERE configuration_key='SESSION_WRITE_DIRECTORY';
and thats it!
9. You should review all your email settings in Admin->Configuration->Email Options -- especially any SMTP server/account settings, and of course all your email addresses.