I think using something like NAnt and CruiseControl would be a much
better option. You can also create a deployment project for your web
app using VS.NET
If you prefer to use the manual way, you just need to simulate your
development enviroment on the test machine-folders and stuff.
Copy over your web app dll to the bin folder and make sure you copy all
the aspx pages. You dont need the code behind.
Regarding the database, create scripts for all your tables, sps,
triggers etc and run the script on the test/staging machine. This
should also populate the tables which are necessary to 'start' the
application such as user roles etc. Other than this, the transactional
data should not be populated using these scripts. The data should be
populated next.
I would suggest not to use your development data on the staging
machine. Create scripts to insert values into the newly created tables
and then populate the data. Make sure someone who knows the
functionality of the application and has an overview of the database
design, but doesnt know the code does this, as then the testing will
bring out some bugs which developers tend to hide using 'manipulated
data'.
~Sankalp