I am working on building a Windows Phone 8 Application for our enterprise and I while doing so I have learned a very painful lesson. A lesson in testing your application with a phone which only has wifi, not a cell connection.
When building the application I took the needed steps to ensure that my app would handle idle/resume and background/forground correctly. However when doing this testing I either used my phone which is connected to a cell network OR I used the emulator which is on our corp network. And for the most part things are going ok.
However, once I handed the app over to our QA team they started reporting very odd bugs (most sadly were crashes). These bugs all were found while doing idle/resume or background/forground testing on physical phones. But these phones were different, they were special. None of the phones were connected to a cell network, only connected via wifi. This meant that they were able to find some very special, and very hard to reproduce bugs .
The moral of the story is that you need to make sure you test your application with as many different devices and configurations as possible. Also do NOT assume everyone will have a cell connection on their phone when doing your testing.