Every company is different, and will have a different budget available for acquiring mobile devices. Here is an example of how I would decide on which phones to buy if I was allowed to purchase no more than ten. I am based in the United States, so I would be thinking about US carriers. I would want to make sure that I had at least one AT&T, Verizon, T-Mobile, and Sprint device in my portfolio. I would also want to have a wifi-only device. I would want to make sure that I had at least one iOS device and at least one Android device. For OS versions, I'd want to have the both the latest OS version and the next-to-latest OS version for each operating system. For Android devices, I'd want to have Samsung, LG, and Motorola represented, because these are the most popular Android devices in the US. Finally, I would want to make sure that I had at least one tablet for each operating system.
With those stipulations in mind, I would create a list of devices like this:
In this portfolio, we have three iOS devices and six Android devices. All four carriers I wanted are represented, and we have one wifi only device. We have three tablets and six smartphones. We have the latest iOS and Android versions, and the next-to-latest versions. And we also have a variety of screen sizes. It's easy to modify a device plan like this if for some reason devices aren't available. For example, if I went to purchase these devices and found that Sprint wasn't carrying the iPhone X, I could easily switch my plan around so I could get an iPhone X from AT&T and an iPhone 8 Plus from Sprint instead.
The benefit of having a physical device portfolio is that you can add to it every year as your budget allows. Each year you can purchase a new set of devices with the latest OS version, and you can keep your old devices on the older OS versions, thus expanding the range of OS versions you can test with.
Once you have a device portfolio, you'll need to make sure you are building good mobile tests into your test plans. You can add the following tests:
- Test the application in the mobile browser, in addition to testing the native app
- Test in portrait and landscape modes, switching back and forth between the two
- Change from using the network to using wifi, to using no service, and back again
- Test any in-app links and social media features
- Set the phone or device timer to go off during your testing
- Set text messages or low battery warnings to come in during your testing
What about testing on the dozens of devices that you don't have? This is where device farms come in. A device farm is made of many physical devices housed in one location that you can access through the Web. From your computer, you can access the device controls such as the Home or Back buttons, swipe left and right on the screen, and click on the controls in your application. You may even be able to do things like rotate the device and receive a phone call. With a device farm, you can expand the range of devices you are testing on. Good ideas for expanding your test plan would be adding devices with older OS versions, and adding devices from manufacturers that you don't have in your portfolio. In my case above, this might mean adding in HTC and Huawei devices.
For manual device farm testing, I have had good experiences with Perfecto. Other popular device farms with manual testing capabilities are AWS, Sauce Labs, and Browserstack.
You may be saying to yourself at this point, "You've got some great devices and carriers for US testing, but my users come from all over the world. How can I make sure that they are all having a good user experience with my app?" This is where crowd-testing comes in! There are testing companies that specialize in using testers from many countries, who are using devices with their local carriers. They can test your application in their own time zone on a device in their own language. Popular global test companies include Testlio and Global App Testing. Another good resource is uTest, which matches up independent testers with companies who are looking for testing on specific devices in specific countries.
With a mobile device portfolio, a mobile test plan, a device farm, and a crowd-testing service in place, you will be able to to execute a comprehensive suite of tests on your application and ensure a great user experience worldwide. But all of this manual testing takes a lot of time! Next week, we'll discuss how to save time and maximize your mobile test coverage through automated mobile testing.