When you first began using IIS in a production environment, you probably had only one Web server on which to test your code. If you were like me, you tested your HTML on your workstation. However, as your company grows, you begin using more advanced technologies and third-party applications on your Web server. To continue testing code on your workstation, you need to install these extras on your machine, which can result in licensing problems for those applications. To further complicate matters, your company might now have a development team that needs access to your machine for testing.

You don’t want a team of people using your machine, but you need to test code before it goes into production. The answer is a test server. A test server gives developers a dedicated box on which to try new code before releasing it to production and test different configurations.

Building the Test Server
A test server must mimic your production environment as closely as possible but offset the cost of a fully loaded server. Mimicking a production environment is easy. For example, my production environment is a Compaq ProLiant DL360 with dual-Pentium III 866MHz processors, 512MB of RAM, and dual 9.1GB mirrored hark disks. Loaded with Windows 2000 Server and five Client Access Licenses (CALs), this server costs approximately $8000. The server hosts IIS 5.0, and the site uses a mix of Java and Active Server Pages (ASP) applications.

I don’t want to incur this kind of expense for a test server. In addition, the requirements for a test server aren’t nearly as high as for a production server. In this example, the software and OS are relatively inexpensive. IIS and ASP are bundled with Win2K, and Java is free. So, the only software expense is for an additional copy of Win2K.

For my test server, I shopped for workstation systems because I didn’t want to pay for server-class parts. I chose a Dell Dimension L series machine with one Pentium Celeron 700MHz processor that had 128MB of RAM and a 10GB IDE drive. The machine came with Win2K Professional, but I purchased Win2K Server to truly mimic my production server. (Developing ASP files in a Win2K Pro environment is a common error that results in unscheduled rewrites and requires debugging when you move the code to the more complex production server environment.) The Dimension machine was more than $1000; with Win2K Server, the total was still less than $2000 for the whole setup.

Setting Up the Test Server
Let’s assume that you’re working with a test server like the one I just described. You want your server to be as much like your production environment as possible, so you must first install Win2K Server with all the same options as your production server. Keep the root directory for IIS the same, and install any third-party software to the same locations as on the production server. Also, be sure to recreate permissions, metabase settings, and anything else you’ve added to your production server. The key is for these two servers to behave as similarly as possible.

What’s Next?
Educate your development team about the new test environment and how to use it. Show them how to access the test server through FTP, a share, or Microsoft FrontPage. A common problem is that all the links map back to the production server, which might result from the way in which the HTML was coded. Make sure you’re using relative links rather than absolute links for all images and links. That way, when you run tests, you test everything on the new test server.

Whether you back up a test server is up to you. Can you afford to lose whatever is on the test server? Can you afford to lose the time you spent setting up the test server? If these losses are important to you, back up the test server. In addition, your developers would probably appreciate having the new ideas or code they’re testing on the server backed up.

Test servers are useful; they prevent you from making changes on the fly in a production environment. The benefit for your Web users is a more stable environment.