Test Network reccomendation



I would like to setup a test network environment for application
development. I would like this to mirror the parts of our large network
that our applications touch. These applications gather, modify, and
redistribute data from many divisions of the company. Two physical file
servers, two sql servers all under one domain and a file server/sql server
for outside puplic access.
I am thinking that building a test environment with names identical to the
real environment would allow us to test apps and move them directly to the
real setup. In the live environment there is pretty heavy traffic but the
test environment would only need to test individual transactions from one
user (one of us developers).
So I have a few questions:
1. Is this a normal and logical method?
2. Can I purchase one fast server with lots of memory and run the servers
virtually?
3. What problems would come up if I plugged this test environment into the
main network as a different domain. (so we could access from our regular
workstations)
This is a large company and these are critical apps so without going crazy,
the cost factor is not an issue.

Thaks for any tips or advice,
Ken


.