Many times our Q/A staff is tasked by well meaning managers with the task of testing some new website, plugin, game or other network enabled application with zero training, tools or even a basic understanding of the scope of what they need to test.
Any network enabled application can run into a number of issues that it will need to work with or fail gracefully from. Without adequate testing the company will at the least loose some of its reputation, and at most go out of business.
A short list of of common network errors include, but are not limited to:
- Server Failure
- Packet Loss
- Slow Connection
- No Connection
- Bad or corrupt data
To test these scenarios required dedicated hardware in the past, but today almost any PC or Mac can detect and simulate most network conditions through simple to use tools. To get a team started I have assembled the simple networking toolbox bellow..
The fist step in any testing is finding out what you need to test and how to monitor the testing. While any tester should be provided with a list of services an application uses, developers frequently forget the full range of services. Regardless it is always a good idea to discover what services are in use through use of a packet sniffer.
A packet sniffer will allow you to monitor all packets comming to and from your PC or Mac. Through looking at the logs from a packet sniffer you should be able to find all the services an aplication is using. A couple of inexpensive cross platform packet sniffers include:
There are a number of more sophisticated or pricer solutions, but these should get you started. Once you have run the application and discovered which service addresses are used you can exclude or redirect them to your local box by manipulating the PC or Mac Hosts file.
Good Free Hosts File Managers include:
To test other bandwidth and packet loss is a bit more complicated, but luckilly there are now simple tools that alllow you to simulate most common issues:
The testing of any netwrok enabled application is not trivial and our testers need to be very methodical. The above tools are a good start, but they will need to master them and integrate them into appropriate testing procedures to be effective and ensure that your networked app or game works or fails gracefully.
If you know of any good tutorials or applications, please comment below and I will update this toolbox as needed.