Simplified approach towards Mobile Application Testing
When we talk about mobile applications, the first and the most commonly used application that comes to our mind is ‘WhatsApp’.
Despite using it 24/7, have we ever put a thought to the fact that what thought was put into building it right and making it live? Whoever developed it must have done some local testing around it. Thereafter, it must have gone through different phases of testing and regulatories and a lot of other processes before going live. Eventually, factors like customer feedback must be taken into consideration.
From a testing perspective, anyone could get started with the below points:-
- Explore the app functionality, menu, etc. No documents were provided.
- Behavior on both Android and iOS.
- What is its overall performance?
- Is it good enough for user retention?
- Do I, as a user, get notified timely for all the updates that happen across it?
- Are all the different modules it has, like file sharing, message send/receive, text formatting, camera, audio, etc.
- Do I play around with its settings?
The list is endless. So, let’s try to understand the basics to follow a simplified approach to mobile application testing.
Questions like:– What mobile application testing is? What are the types of testing possible? & What are the tools that can help us achieve it? Etc.
What does Mobile Application Testing entail?
It is a process by which application software developed for mobile phones is tested for its functionality, usability, and consistency. Both Manual and automation testing are possible for mobile testing. Where do I get mobile applications from?
- It’s either pre-installed like a dialer or can be installed from mobile software distribution platforms like Play Store and App Store.
- Package file formats for both Android and iOS are available in apk and ipa form, respectively.
Types of Mobile Applications at a glance
Image Source: Google
Which device to test upon?
- Real devices with different OS versions.
- Devices with different sizes of screens.
- Based on the region where the user is located.
- Virtual devices i.e., Emulators and Simulators.
What are Emulators and Simulators
Emulator | Simulator |
To study the real device | To analyze different environments |
Machine level assembly languages | Assembly languages |
Software and Hardware | Only Software |
They are slow due to latency | Comparatively faster |
Suitable for debugging | Can be difficult for debugging purposes |
Android Emulator, i.e Android SDK (Use Android studio) | Apple simulator i.e. iOS Simulator(Using Xcode) |
The Right Tool for Mobile Testing?
Key Parameters | |||||
Language/Support | Only used for automation.
Can code in multiple languages like Java, Python, JavaScript, PHP etc. |
Used for both manual and automation.
Provides GUI interface for Cloud Test Lab. |
Java & Groovy. | JavaScript, Python, VBScript, C, C++. | Java |
Cost and App Under Test | Open-source. Android and iOS. |
Paid. Supports web and mobile. |
Free and Paid. | Paid. | Free. |
Apps compatibility | Native, Hybrid, and Mobile Web. | Native, Hybrid Mobile Web, and Web. | Mobile, Web, Desktop, and API. | Mobile, Web, and Desktop.
|
Only supports Android. |
Framework Integration/ Setup | TestNG, JUnit, Cucumber, Maven etc | Appium, Selenium, Jmeter etc. | Setup is Quite easy. | Setup is Quite easy. | Coding required. |
Reporting | Integration with TestNG, Junit. | Extensive reporting is available with Analytics etc. | Advance Test Reporting | Not possible. | Using Junit. |
Devices support | Emulator/Simulator and real devices as well. | Offers a wide variety of virtual devices and supports real devices. | Katalon Studio can only support iOS version 9.0 or above. | One can quickly create code or codeless automated mobile tests across multiple Android and iOS devices. | Robotium Test cases can be executed on an Android Emulator as well as a Real device. |
Key Parameters | |||
Brief Description | A mobile application performance testing app that provides real-time automated testing and reproduction of issues. | Instant access to a cloud platform that allows the test of mobile applications for functionality, performance, and visual appeal. | A cloud-based platform wherein one can test their native mobile application (Android and iOS) and mobile websites on Real Devices on the cloud. |
Subscription Required | Yes, Paid | Yes, Paid | Yes, Paid |
Supports devices | Supports real devices. It has started supporting different browsers as well. |
Supports real devices.
Multi-browser testing. |
Support real devices.
Cross-browser testing. |
CI/CD integration | Integration with CI/CD Pipeline. | Integration with CI/CD Pipeline. | Integration with CI/CD Pipeline. |
Challenges | Interface (CLI) is not very easy.
Integration with IDE for test case coding can be a challenge.
Reporting for the test scripts executed. |
Overall performance of usability of the device.
The screen orientation feature is not so user-friendly. Element inspection is a bit difficult here. |
Sometimes, the live apps get slow.
Switching between devices is slow, too. User interface has room for improvement. |
Strategy for Mobile Application Testing
Functionality Testing: Functional testing ensures that the application is as per the requirements. The purpose of Functional tests is to test each function of the software application, by providing appropriate input and verifying the output against the Functional requirements.
GUI Testing: Verify the design of the application is as per the UX/UI designs or mock-up. They are also used to verify the navigation of the application.
Performance Testing: Verification of the application is important under heavy load. When a lot of applications are running in the background, it can also be verified with multiple users logged in at the same time.
Network Testing: With /Without the Internet, how does it perform? It is definitely going to give some hiccups to the user when the network is low, or the mobile is in flight mode.
Interrupt Testing: An application, while functioning, may face several interruptions like incoming/outgoing calls or SMS. Transferring data via Bluetooth a media player on/off, may also impact applications.
Compatibility Testing: Testing the application in the same environment but having different versions. For example, first check for compatibility with Android 9.0 and then with Android 10.0 for the same version of an application.
Interface Testing: Verifies the interaction between two separate systems of an application. It can be related to the errors returned to the user by any of the systems involved, like API, UI, servers, graphics, or more.
Security Testing: Verifying the SSL certificates properly. Discovering the insecure use of cryptography for transmitting data or for local storage. Verifying that sensitive data gets removed from the application when uninstalled.
Memory Testing: The overall performance of the application when the device is running low on storage.Validating the memory leakage problem.
Localization: UI and content are mostly affected by localization. This is to verify on the basis of globalization testing. Localization testing is a technique to verify software behavior, accuracy, and suitability for specific locations and regions.
In-App Purchase Testing: This is done to verify that if a user purchases updates of an application, he will not purchase the feature again.
A few things to keep in mind while testing a mobile application
- Touch gesture: iOS/ Android supports multiple touch gestures. The application will crash if only one event can be fired at a particular instance.
- Bringing the application to the foreground: It is important for an application to judge itself what to do when we are picking them from the background. They might just crash or hang.
- Testing the application: At different speeds like 2g,4g, 5g is very important. It’s important to find the slowness of a page, how much time downloading takes, etc.
- Screen orientation: Most of the applications fail to support landscape or portrait.
When we talk about things to keep in mind while testing a mobile application, push notification testing never takes a back seat.
Importance of Push notification testing in an application?
It is a message sent by an application to a customer’s mobile device. A notification can either be dismissed or cannot be dismissed (Hard notification)
What are the test cases around it?
- When the app is in the background, we expect push notifications.
- The notification bar is where it appears.
- Different time zones do not matter; notification does.
- Multiple notifications for the same thing, unless configured, shouldn’t be received.
- It should be in the language sent.
- It should only be sent to the target audience/user.
- It can be manually dismissed by the user.
- Turn off the internet, send the push notification, and turn the internet back on. A notification should be received.
There is no road without obstacles and no application without a flaw.
Poor app performance can lead to customer churn and can impact the long-term future of your application. To keep up with the competition and retain users, we can keep in mind a few tips to make mobile applications more impactful:-
- Be aware of the Test Environment.
- Update yourself with the latest build- for both Android and iOS.
- Make sure that you have the right test cases, test steps, and test data in place.
- Conduct smoke and sanity testing.
- Functionality takes the first seat, but regression testing never takes a back seat.
- Backward compatibility testing is as important as integration testing.
- Bug detection and reporting still play a vital role.
- Reporting and evidence, be it screenshots or videos.
Quality Engineers are expected to deliver their tasks with quality and within the timelines. Whether the approach is towards building the right product or building it right, both offer a flawless and user-friendly product. In the end, it is all about the quality with which mobile applications are being delivered. Nobody likes an app crash. It is good to be mindful of what we are doing, why we are doing it, and how we are doing it.
The demand for mobile applications is rising, and so are the expectations for a mobile app tester. Keep yourself updated and upgraded to take on the challenges.