One rule of thumb when developing web/mobile applications is: stress the network (as already pointed out here)! It could be mission critical to have a full functional network connection with average availability and coverage. But have you testet that? How does your application behave with DNS delays? Can the server handle breaking connections? And how to test that?
I’m pretty sure that there are several Windows tools/proxies out there, which allow you those kind of testing. For those lucky guys with Mac hardware I can strongly recommend the Network Link Conditioner. This nifty tool has been introduced by Apple with the Lion release and allows you to simulate different network conditions on your Mac. But “simulate” isn’t the right word: it really breaks down the network traffic. So you can run an EDGE connection from your Mac even if you’re connected to a 1GBit LAN. Very nice.
But as always: running tests in Simulators doesn’t mean the real world. The iOS simulator i. e. is very nice, but it’s not the same as running an application on a real device. That’s the point where Apple made a real good point: they introduced the Network Link Conditioner – with iOS 6 – to the native devices. To use it your device has to be enrolled as a development device.
Currently I’m not aware of an equal app/tool for Android. If you’ve got recommendations for that, please leave a comment.