There are differences in mobile applications compared to other applications in terms of the way it is implemented, distributed, and consumed by end-users. But in terms of testing, it is not that different after all. The ideas, methods, and tactics testers use when testing other applications can be applied.
To mobile as well.
Some of the commonalities in terms of areas to be tested are log files, rendering issues, performance, consistency, storage, memory issues, caching problems, and security vulnerabilities.
There are also overlaps in terms of testing strategies that can be used, including:
· Blink test: Looking for visual patterns by constantly switching between similar versions of pages or apps to notice minute differences in rendering or visual elements
· Installation testing: Installing, uninstalling, and reinstalling apps, including upgrading apps from much earlier versions
· Interrupt testing: Testing how an end-user will use the app by constantly texting, calling, or switching apps on the test phone. The same could be done for web pages
· Testing with different configurations: Testing apps on different mobile devices and OS versions. Similar to browser testing, which involves testing in different browser versions, or testing in desktop applications with different versions of the client’s application
· Checking for consistency: Checking for app consistency between Android and iOS. Similar to looking for consistency in pages of testing between browsers, between browser and mobile, and between desktop applications
· Checking user reviews: Reading through user reviews to find out how end-users feel about your app and how they use it. This applies to desktop applications and websites as well
· Checking for rendering issues: Checking whether web pages display differently based on different mobile browsers and screen sizes
There are many examples of issues Pragnam Software and Testing Solutions have found following the above strategies in mobile and other applications. Whenever you test an application, always check for consistency with its previous versions, with its competitors, between OS versions, between browsers, and much more.
At Pragnam Software and Testing Solutions, we were once testing a booking application that makes hotel, flight, and car reservations via a mobile app. There were both an Android and an IOS version of this app. We noticed that when a customer searched for hotel rooms for more than four people, they were navigated to the mobile website from the Android version of the mobile app; but on the IOS version of the same app, they were able to search for hotel rooms within the app itself without being redirected to the mobile website. The behavior was inconsistent between their versions of Android and iOS apps, and this was a bad customer experience. Once pointed out, we were immediately able to change the flow on the Android app to ensure the apps have consistent behavior.
Another time, we were testing a revamped version of a screen capture desktop application. The new features were really cool, but when I checked for consistency between the new version and older versions and other competing apps, there was a vast difference in the main functionalities. Imagine this situation: The user opens a word processing application and tries to save a file. Any user would immediately look at the top left corner of the screen to click on the File>Save option. This is a de facto standard of word processors. But say the option is all the way at the bottom right corner of the screen. How would that experience be? The same thing happened with the new version of the client’s screen capture tool; the option to capture a screenshot was at the bottom right corner of the screen instead of the top portion of the screen, which the users were used to seeing. Similarly, there were other major buttons and options on the GUI that were misplaced and scattered all over the application. All in all, the application was quite inconsistent with its previous versions and competitors, which would probably result in a poor user experience.
It is important to know these commonalities to understand that mobile is just one type of application, and the testing techniques and approaches picked up for testing other applications are not a waste. These are rich skills that are used across various domains. In my personal experience, I believe that these skills are learned through practice rather than attending a course or getting certified.