My 2020 article on the challenges of mobile app testing has been revised to incorporate information on remote work. The original article can be found here. The emergence of remote work has introduced a fresh set of obstacles to mobile app testing.
So what are they…………
Device and Operating System Fragmentation:
The biggest and perhaps the most important challenge to any mobile application software tester is. What devices and operating systems do you need to test new applications and features on?
Device fragmentation refers to the number of devices and operating systems that are in use in the Android and iOS market at any given time.
Android, for example, has numerous device models running different versions of the Android operating system. We also have to factor in that within a single device model, there can be multiple different versions of the Android operating system being used. This multiplies the complexity of fragmentation and the devices and operating system versions that need to be tested.
An app that performs well on Android 13 may not see the same level of performance on Android 7.
Mobile Application Types:
Mobile applications could be built Native, Hybrid or Web-based. Testing for each type of mobile application varies.
Native mobile applications are developed for certain operating systems such as Android and iOS. This means that they are native to the platform they have been developed for. An Android application cannot be used on an iOS device and vice versa. Native applications are fast and responsive and provide a good user experience.
Hybrid mobile applications are built part native and part web applications. Like Native apps, Hybrid apps can be downloaded from app stores. Hybrid apps can take advantage of a devices native features but also HTML rendered inside an embedded browser in the application. This type of app typically has lower development costs than a purely Native application.
Web apps are applications designed to look and feel like native mobile applications. However, these are not implemented as native mobile applications. Web apps are installed and run using a browser such as Chrome or Safari on a mobile device.
The constant evolution of devices and operating systems will impact how users use and interact with touchscreen devices. Device screen sizes vary. The functionality of the application may work but is it useable? Do taps, swipes and scrolling perform as expected? Is the design useable or can it be improved?
Networks and Connection Types:
Mobile apps can be used on various connection types, for example, 3g, 4g, 5g and Wi-fi and in different situations such as flight mode. Testers need to see how the application under test performs in these situations.
Users tend to have many apps running on their devices at the same time. Many background processes happen without the user realising. When testing a mobile app it is important to test that battery consumption is kept minimal. A user is not likely to use an application that drains their battery life.
No amount of testing can cater to the behaviour of the intended user. More often than not a user of the application under test will find unique and unintended ways of using your application. It is important to try and consider edge cases when testing your applications. No matter how unlikely you think these are likely to occur in the real world.
Remote working has become increasingly common in recent years, and this trend is likely to continue. However, remote working in teams can present several challenges for mobile app testing:
Communication and Collaboration
Effective communication and collaboration are essential for successful mobile app testing, and remote working can make these activities more challenging. Team members could be working in different locations and time zones, it could be more difficult to coordinate and collaborate effectively.
Access to Testing Devices
With remote work, team members may not have access to all the testing devices they need. This can lead to issues with device compatibility testing and may require additional coordination to ensure that all necessary devices are available.
When team members are working remotely, there may be additional security risks to consider. For example, team members may be using personal devices or working on unsecured networks, which could compromise the security of the testing process.