Today, I’d like to blog about mobile testing. Like many of you out there, I am a frequent mobile user and I would feel considerably inconvenienced were I to be without it for even just a few hours!
The market is flooded with mobile hand-held devices and we rely so heavily on them for so many reasons: communication, diary bookings, notes, reminders, security and protection, emergencies, socialising, learning, entertainment, sleep, relaxation and so on.
It would be extremely time-consuming to test each function on every make, model and operating system combination. As a result, regression testing can become a blocker to putting new releases live.
Many companies limit their testing of new products, fixes and changes to a defined list of the most popular supported device makes and models. Some companies work with Testing Services Providers to support a robust testing process, often using test automation, with advice on choosing, introducing, implementing, maintaining, monitoring and managing of tools that are tailored to suit the organisational needs of budget, timescales and strategic targets.
Mobile testing primarily considers three main areas - functionality, usability and consistency:
Functionality in mobile testing:
Typical high use functions might be as follows:
- Socialising - Facebook/Instagram/Twitter etc.
- Camera, Photography, Video.
- Surfing the internet, reading, news, learning, shopping, checking weather forecast
- Calling related functions e.g. calling, call screening, click to call, hold and retrieve.
- Voice activated commands and related functionality.
- Email - create new, send, save draft, amend, block sender, recall, send and delete.
- WhatsApp - messaging functions, video calling, giphs, memes, group calls and correspondence.
- Texting - create new, send, save draft, amend, recall, send and delete.
- Finance management such as internet banking.
- Playing games - group/solo interactive gaming, leader board contests etc.
- YouTube/Tik Tok - watching/posting video.
- Music streaming such as iTunes, Spotify etc.
...and not forgetting specific functions of wide variety of other apps not mentioned here.
Usability is a vast area of mobile testing which considers how the device, its software and operating system is handled from a user perspective. The boundaries can very easily overlap into performance testing and security testing because they are so intrinsic to the end user experience!
As we all have very different needs, levels of knowledge and expectations, the kind of things covered in usability can be diverse. Usability can also depend upon the purpose of the apps within it and whether a phone is for personal, business or emergency use.
A music app, a navigational app such as Google Maps and NHS Covid-19 track/trace will have very different testing implications but also some that are shared.
Usability testing can include:
- Easy to learn - how intuitive and easy is it for a new user to become familiar with the device and its operating system?
- User-friendly - are the quick set up guides automatically offered, easy to park, relocate and resume?
- Ease of use - how appealing and consistent is the look and feel of the GUI (Graphical User Interface) which allows interactions with computers via window, icons, cursors, buttons, menus, mouse/keyboard commands?
- How strong and consistent is the quality and breadth of decent signal for the device operations?
- How easy is it to switch between on and offline mode using the device?
- Interrupt testing - checking out how a device handles interruption and resumes to its previous state.
- App/web interoperability - can the user perform key functions using the device on each route?
- Efficient - is it streamlined, quick to click, easy to scroll with minimal user action required to get to desired function?
- Layout - how consistent and effective are buttons, links, font/icon/screen resolution size, check boxes etc.?
- Can users complete definitive key customer journeys, are they available and enabled within/between device modules?
- Field validation - can users input text/numbers, special characters, is the field capacity large enough?
- Is the usability of device affected negatively by orientation of screen e.g. landscape/portrait?
- Is the journey flow easy to follow and quick to use?
- Can a user register an account, sign in, reset password?
- Can the device be used with different browsers and network providers?
- What is compatibility like with other devices such a sports watches, headphones etc.?
- What happens when storage becomes full, is the device operable and does the user get advanced warning?
- Can the user customise the device set up easily regarding look and feel, permissions, apps, security?
- Can the user easily access and utilise Bluetooth/Wi-Fi/USB capability?
- Peripherals - how effective is use with headset, microphone, webcam, links to PC, printing tethering (shared internet connection between devices), hotspot (internet access for wireless device)?
- Can the device be used in silent/flight mode?
- Can the device location be set and is 'Find My Phone' possible to enable?
- Is voice control possible to activate and touch screen operations?
- How secure is the device, can the device be accessed when locked?
- How fast does the device launch?
- How easy is lock/unlock?
- Can the user create, store, amend, delete passwords securely?
- Is messaging encrypted?
- Can users access call, message, social media, camera, video etc.?
- How well does application install/uninstall work as well as operating platform updates?
- Does the battery life of the device seem reasonable for daily use?
- How big and heavy is the device?
- Is it waterproof or drop-proof to any degree?
- Can the user feel confident about data deletion process and success?
- Conversely, how easy is it for users to back up and retrieve key data?
- Is the performance and response time acceptable for the typical user?
- How easy is it for the user to port their account to another device e.g. new upgrade or temporary switch?
- If anything isn’t working, does the user get a user-friendly error message?
- Can the user customise notifications?
Consistency: Essentially, this area relates to uniform consistency of how a device is used and making sure the elements listed above when using an interface, look and behave in the same way. It helps the user to enjoy and utilise the device more effectively. This in turn can have a huge effect on brand reputation and market sales.
Operating Systems: The most popular operating systems are iOS and Android but there are other types such as Blackberry, Windows, Symbian to name the main ones in use. There are three different types of apps. Firstly, the Mobile Web App, the Native App and the Hybrid App.
Mobile Web Apps: Web apps are not real applications but a type of application software designed to run on a mobile device, such as a smartphone or tablet computer which is accessed with the help of a browser. Where a web site is informative and a user can click, search and navigate, a web app typically is more interactive with its user base and offers additional functionality and interactive options. Web apps need a cell signal or Wi-Fi internet connection. There are several permutations of applying a web application for mobile:
- Responsive Web Design - good for viewing small screens and touch screens.
- Progressive Web Apps (PWA) - like regular web pages but can accommodate working offline and device hardware access which would typically only be offered to native mobile
Web apps do not consume any storage space on the device as they are accessed via browsers.
Native Apps: these are apps written using a dedicated programming language specific to the platform they’re being developed for. A few examples are: Objective-C or Swift for iOS and Java for Android. A native mobile app is installed directly onto a smartphone and can sometimes work with no internet connectivity depending on the nature of the app. Facebook and Instagram are well known native apps. React Native is an open-source mobile application framework created by Facebook, Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use React along with native platform capabilities. Native apps are stored within the local storage on the devices.
Hybrid Apps: a good way to describe these are as a mobile app that contains a web view, so an isolated browser instance which allows a web application to run nested inside a native app, using a kind of wrapper. The wrapper can communicate, with the benefit that web applications can run on a mobile device and have access to the device, such as the camera or GPS features. This works via third party tools which are not part of the official iOS or Android platforms, for example Apache Cordova. When a hybrid app is built, it gets compiled, transforming the web application into a native application. Hybrid apps are stored within the local storage of the device.
Given the complexity of the mobile testing world, it makes total sense to call upon the expertise of a Testing Services Provider as they can offer huge benefits, such as test automation, saving money and time by leveraging a wealth of expertise from a long standing tried and tested brand.