Are you new to the world of testing iOS applications? Perhaps you’ve had some experience in testing Android but not iOS but would like to get started? If so, this article is for you. Until a couple of years ago, my career had been focused on testing Android, Blackberry and web applications. Lately, I’ve been totally involved in testing an iOS application and have been using a number of tools that have been really useful. In this blog, I’ll cover some of those tools and tell you how they have helped.
iOS and Android are the most widely used mobile operating systems so it makes sense for testers to be able to work with both.
iOS Testing Tools List
Let’s take a look now at the tools I have been using.
The first tool any developer or tester needs for testing iOS applications is Xcode. Xcode is an IDE that contains multiple software development tools for macOS, iOS, WatchOS and tvOS. There are several reasons a tester will want to have Xcode installed with simulators topping that list. Within Xcode, testers and developers have the ability to download and install simulators with the desired simulated hardware and iOS version. This is particularly useful if you have limited iPhone hardware access.
Another excellent reason to install Xcode, is so you can access developer tools on your iOS device. Once your device is connected to the machine running Xcode, a “developer tools” option will appear within settings on the device. Some later versions of iOS will require a more recent version of Xcode to enable developer tools. For instance, if you are on iOS 10, you will need Xcode version 7.3.1 or higher.
Additionally, crash logs can be easily obtained from your iOS device by connecting the device to your machine running Xcode. The device will then be displayed on the Xcode “Devices” window.
To access the devices window:
Go to the Xcode > Window menu > Devices
The connected device should be displayed in the Devices list on the left tab. This is also the location to find a simulator and launch it. The simulators list will be found below the devices list.
Network Conditioning Tool
Once developer tools have been enabled, other tools can be accessed on the device such as the Network Link Conditioner. This tool provides the ability to test the app in various network conditions such as EDGE, 3G, WiFi and other preset options. There is also a custom profile option for the tester to set specific values for bandwidth, dropped packets and delays. Use this to pinpoint the threshold for when network conditions are too poor for the app to function. You can also observe error messages, crashes or see the app gracefully handling the condition.
Once you have the network conditioning tool in use, you might want to verify that it’s actually working. An app such as Speedtest can be downloaded for free from the app store. It’s useful for observing the conditions of your current network when behavior in the app might be caused by those particular conditions. In my experience, the speed test app accurately reflects the conditions set in the network conditioning tool.
If you have a large number of devices to manage, Cisco’s Meraki is a cloud based device management tool that’s good to use. It’s great for keeping track of devices and quickly assessing the versions and other details about your devices. When a new build is available for testing, simply upload the build to Meraki, then push it to all your devices or select which devices to push the build to. This makes it much easier to ensure an entire QA team has the latest version for testing. Meraki is not a free tool however, so if you only have a few devices to test, the cost might outweigh the benefits.
Reflector is a mirroring tool that works with Apple AirPlay to allow streaming across your Apple devices. Once setup, the tool developed by Air Squirrels can be used to record a video of that bug that is so difficult to reproduce. The video can then be attached to your bug report, which will make it easier for the developer to reproduce it. Or, if you have an Apple tv or Chromecast, you can throw the mirrored image on the big screen for a demo or meeting.
These are just a few of the tools that I’ve recently found useful. I hope this roundup will give you a solid base of tools for an expedition into iOS testing.