Testing on a Huge Range of Devices with Cloud-based Testing
Author: Ian Darwin
You need to test your app on a wide variety of devices.
Use one of several web-based or cloud-based app testing services.
When Android was young, it was perhaps feasible to own one of each kind of device, to be able to say you had tested it on everything. I have half a dozen Android devices, most of them semi-expired, for this purpose. Yet today there are hundreds of different devices to test on, some with two or three different OS versions, different cell radios, and so on. It's just not practical for each developer to own enough devices for testing on everything. That leaves two choices: either set up a hundred different AVD's as discussed elsewhere in this chapter, or use a "cloud-based" or web-based testing service.
The basic idea is that these companies buy lots of devices, put them in server rooms with a webcam pointed at the screen, and USB drivers that transfer keystrokes and touch gestures from your web browser-based control program to the real devices. These devices are in cities around the world so you can test being online with various mobile service providers, get GPS coordinates from the real location, and so on.
Here are some of the providers in this space, listed in alphabetical order. Some are Android-specific while some also cover iOS, BlackBerry, etc.
BitBar TestDroid 
BSquare Automated Testing 
Experitest Mobile 
Jamo Solutions 
LessPainful.com  (funds Calabash test framework; acquired by Xamarin)
Perfecto Mobile