Somewhere behind all of the user interfaces that make up a Web application are many servers. Testing the server directly is challenging because you can no longer take advantage of the client interface. Server applications and components communicate with each other, as well as to the operating system’s sevices such as file system services, via an application interface or Applicaton Programming Interface(API). Unlike the UI, this interface is not intuitive to use for an end user. Therefore, testing these interfaces often requires a test harness or driver to be built, or the use of scripts or programs to execute your tests.
In testing the server-side, determine what is the longest possible time delay for the various server-side tasks. Then set up conditions and test the system against those scenarios. During stress or performance testing, these tests will need to be reviewed using various loads on the server. If the application is not architected and implemented well, time-out conditions not only often lead to loss of connection ( e.g. the user must log in again), but can also create data integrity issues. You want to analyze the system under test to identify scenarios by trying to understand how each component (e.g., database, Web Servers, application servers, browsers, and clients) will behave when there is a time-out.
Operating systems and server-based applications often offer logging mechanisms so that activities among various application and operating system components can be tracked, analyzed, and audited. Understanding the basics of event logging, what information is being written to log files, and how to retrieve the logs will help you a great deal in testing for, and more importantly, analyzing server failures.
Monitoring utilities are useful tools that give you a view into what’s going on inside the system software and hardware. This information is key to gray-box testing because it shows the communication and activities generated by many hidden processes. These processes represent applications and their components communicating to each other. Some of the monitoring utilities that can used are Windows System Monitor, Windows Performance Monitor, Windows Event Viewer, Windows System Information, Windows Task Manager, and Unix Terminal System Information.
Due to the complex nature of server-side testing, it is useful to know how to use scripting languages, become familiar scripting techniques, and know how to apply them to testing software. You don’t always have to write the script yourself. Knowing what you need and what is possible will enable you to ask developers for the help you need to be more effective.