A large portion of the population walks around with a small computer in their pocket – a smartphone. Mobile devices have become increasingly powerful and accessible. They’re lightweight and often more convenient than a laptop or desktop computer, especially when doing something on the fly. You may even be reading this on a mobile device – the chances are higher than you think.
A functioning mobile site or app is no longer a nice to have. Users expect websites to work on mobile devices or a mobile app they can download as a substitute. Have you ever opened a website or an application on your mobile device only to be met by something looking or behaving in a strange way? It’s a frustrating experience as a user.
Usability is extremely important when it comes to mobile applications. If the app has poor usability or performance, users are likely to uninstall or leave the site. As such, it’s very common to do a lot of manual tests for mobile applications to help ensure a good user experience.
There are three main types of mobile apps that tend to have some different focuses when it comes to testing:
- Native
- Browser-based or web
- Hybrid
Native apps are downloaded and installed from the app store. They are platform specific, so Android and iOS builds will be different. Being native apps, they are designed specifically for mobile devices with usability in mind. Device compatibility tends to be a bigger concern than usability when it comes to testing native apps. These types of apps may or may not work offline.
Browser-based apps are web apps accessed through a mobile browser. The site can be mobile specific or the same site a user would reach if they accessed it on a desktop browser. Either way, the web application must adjust gracefully to the smaller screen size. Usability is a big concern when it comes to browser-based apps. These apps require internet access.
Hybrid apps are a combination of native and web app. They use a native wrapper to contain the web view. They are downloaded and installed from the app store, but what you see when you open the app is basically the web application. Usability and performance are the biggest concerns for hybrid apps. Like native apps, these may or may not work offline.
Because of the nature of mobile devices there are some special things to consider when it comes to mobile applications to ensure a good user experience. These are generally less of a concern for desktop and web apps accessed through a desktop browser.
Screen size and orientation
Mobile devices have significantly smaller screens that can be rotated on a whim. The UI needs to scale accordingly, so that elements don’t overlap and there aren’t any usability issues. If elements are too big, elements may extend off the edge of the screen where they aren’t visible and are unreachable. If things are too small, they can be hard to read or click on. Images should also scale accordingly.
Phones aren’t the only mobile devices. Tablets, while they often have a lot of the same functionality as phones, have a different screen size that mobile applications should also be tested on.
When the device is rotated, if the app allows for screen rotation, the UI needs to adjust and handle that rotation back and forth between portrait and landscape. Additionally, the app state needs to persist during an orientation change and any data should be retained in fields.
Input methods and sensors
Input methods for mobile devices differ from desktop and laptop computers in that they usually don’t use a physical keyboard or mouse. There are also several input sensors that can be used.
Rather than using a mouse to click around, touch is the main method of navigation. Where a mouse pointer is quite precise, touching a screen often is not, so size and spacing of elements needs to be considered. Touch controls don’t end with a single tap either, gestures can be used. While not every mobile app will respond to all gestures, app behavior when gestures are used should be evaluated. What happens with multi-touch? Does the app handle pinching and pulling? What about swiping in a direction? Understand the gestures that the device allows and assess how the mobile application responds to those gestures.
Mobile devices, while they may be able to use a physical keyboard, usually use a soft keyboard that appears on screen. When clicking into a text field, the keyboard should come up and the app might need to scroll to keep the field that the user is typing in on screen and visible. But what if it’s a field that only allows numbers? Should the numeric keyboard display instead of the full keyboard?
There are also other inputs to consider such as the camera, microphone, GPS, and gyroscope. Not all apps will use all the inputs, but apps that do use them must additionally consider what should happen if a device doesn’t have that input, or permissions to use the input have been denied by the user, or it has been turned off, like GPS location for example. If it’s something that’s absolutely required and the mobile application doesn’t have access to it, the user should be informed of this.
Interrupts
Interrupts are interruptions to the use of the application. Some interrupts are user-initiated and some aren’t. Common interrupts include calls, texts, low battery, and other notifications. For user-initiated interrupts, switching apps and locking the device are two of the most common. When an interrupt occurs, the app state should persist and data should be retained. There should be no negative impact from interrupts.
Connectivity
Mobile devices are inherently mobile, they travel with the user. Because they are often used while moving, how and if they’re connected to the internet varies, sometimes changing even within a working session.
The mobile application needs to gracefully handle the varying connectivity. Whether the user is connected to Wi-Fi or using cellular data, the app should work, or at minimum notify the user if it doesn’t work with that type of internet connection. For example, an app for monitoring your Wi-Fi connection might legitimately not work when the device isn’t connected to Wi-Fi. For most applications that require internet, users will expect them to work as long as they have internet connection, regardless of the type.
If possible, field testing is a good way to ensure a mobile app is functioning properly in real user scenarios. It will help cover the varying speeds, signal strengths, and dead zones that a user may experience.
While testing mobile applications may take significant effort in comparison to non-mobile applications because of the amount of manual testing that needs to be done, users are guaranteed to notice the smoother, more usable, experience they have as a result and in turn are more likely to continue using the mobile app.
Looking for a partner to assist you with mobile application development? We’d love to help! Contact us to get started.
We’re also always looking for talented testers to join our team. Check out our current openings.