The test server should be entirely separate which means, ideally: No, Tribal

And the test server should probably be the same in all respects to the original server. The only difference is the (sub)domain. I doubt a user would log into the test server and not realize that it's the test server so no separate CSS should be required. Plus, if they're identical except for the code changes, all you need to do in order to upgrade the live server is to copy the files onto the new server.
I would actually recommend a 4-server scheme:
Live application server = Slave Database + Application. Accessible externally
Deployment server = Slave Database + Application. Accessible internally
Development server = Master Database + Application. Accessible externally
Data server = Master Database. Accessible internally
The Data server is where your master database is located. Both the Deployment and Live servers slave off of this database so as to have identical copies. So, you create your initial database and application on your Development server. Once it's ready for prime-time, you re-construct the master database on the Data server and copy the application to your Live server. Then, you create a slave of your master database on the Live server and you're ready to rock.
Now, people are playing your game and discovering errors. You work on them in your Development server (which is identical to the Live server at the start except for data). People can log into your development version and play through to let you know when it's ready for live play. You then create a copy of the application on the Deployment server. If any database changes took place, you need to perform the relevant alter table statements and such on your master database so that it reflects your Development version without altering the stored data. You slave the database to the Deployment server.
Now, you edit your web-host to point the old Live server URL to the Deployment server. Now, your Deployment server and your Live server have, essentially, switched places. You re-slave the 'new' Deployment server and replace the application on it with that from your Development server and you're in a better place for the next upgrade as the Deployment server from this point on will always be a mirror of the Live server except that it is not actually 'used' by players allowing you to do the upgrade to that server without any down-time for your application
