12 different types of mobile testing with real life examples

12 Types of Mobile Testing With Real-life Examples

In today’s world, mobile phones have become an integral part of our lives, with millions of mobile apps available in the market. The functionality of mobile phones has evolved beyond just calling and texting. However, the sheer number of applications available brings with it the need for different types of mobile testing.

Have you ever wondered how a day would be without a cell phone? Probably not, as it seems nearly impossible. And while mobiles come in different models, screen resolutions, operating systems, and network types, how can we ensure that an application works fine on all these different combinations? This is where exhaustive mobile testing comes into play, and in this blog, we’ll explore the different types of mobile testing for applications and hardware. So, let’s dive in!

What are Different Types of Mobile Testing?

1. Functional Testing

Functional testing is a type of mobile testing that ensures that the application is working as per the requirements and that all the functionalities are working as intended. By performing functional testing, we can provide a quality product that meets product requirements, ensures customer satisfaction, and reduces risk.

For example, let’s consider an e-commerce mobile app. One of its functions is to allow users to add a product to the cart.

A user logs into the app, searches for a product, and adds it to the cart.

By validating that the ‘Add to cart’ functionality is working fine, we ensure that the app is functioning correctly.

We can perform functional testing for mobile applications in three ways:

1. Unit Testing:

Developers execute unit tests for the smallest unit of code whenever they commit new code in the code repository. For instance, we can test a small unit like ‘login’ from an e-commerce app during unit testing.

2. Integration Testing:

This method tests different systems for integration and working. We can test integrating two or more modules, from the cart to the payment module.

Tools like Testigma offer 30+ CI/CD integrations and a marketplace for everything you need for mobile application tests

3. End-to-end Testing:

This method tests the whole system using the actual devices, either automated tools or manually. We check the flow starting from login->search->add to cart->payment. We can ensure that the app functions correctly by performing testing from the start to the end of the flow.

It’s worth noting that automated functional testing tests if features are stable, don’t undergo many new changes, and should always have a long-term perspective. Testsigma supports the inspection and execution of your mobile test cases without any setup. Watch the webinar recording here to learn more about portable test cases.



2. Usability Testing

Testing mobile applications checks for a good user experience, good standard layout, intuitiveness of the UI, and users’ ease of use. The users should be able to perform tasks on the application quickly without trying to understand the layout and buttons.

Usability testing reqires real devices to perform and users to gain insights into the user experience. The users are provided with test cases/tasks to complete on the application, and then a questionnaire is provided to them. The usability testing feedback helps enhance the application for user-friendliness and bug removal.

Hence, the steps involved are-

  1. Plan usability testing, write test cases and create test cycles
  2. Select appropriate users as testing candidates
  3. Get testing done by actual users
  4. Receiving feedback through a questionnaire and result in analysis
  5. Reporting and performing enhancements on the application

Example: Let’s assume we have created a new app for e-learning. We may ask our users to use the app for a course of their choice and take a few classes on it after making the payment. We may have questions in the questionnaire like-

  • Was it intuitive and easy for them to navigate through all pages?
  • Did they find the assessment after the class easy and self-explanatory?
  • Were the visuals present in the classes pleasing to the eyes?
  • What do they want to change in the app?
  • What needs to be better?
  • Did they feel overwhelmed by the app at some point and want to exit it?

Popular mobile testing tools for usability testing:

  • Lookback
  • Appsee
  • Applause
  • Userlytics
  • Loop 11

3. Compatibility Testing

Compatibility testing ensures that the mobile app is working and compatible with all the different types of mobile devices you aim to support. This testing is crucial to ensure standard usage and performance of your app on various devices, operating systems, hardware, browsers, and their different versions.

Compatibility testing is performed on a range of probable environments, including:

  • Operating Systems- Windows, iOS, Android, etc.
  • Browsers- Firefox, Chrome, Safari, etc.
  • Devices varying in screen size, resolution, memory, etc. 

Here we are dealing with thousands of probable environments. Therefore it isn’t easy to perform it manually. 

Let’s take an example of Amazon Prime video; it is compatible with iOS and Android smartphones and tablets. Also, it is compatible with a range of smart TVs, Blu-Ray players, PlayStations, etc., which results in thousands of combinations of devices, OS, resolutions, screen sizes, etc.

In such scenarios where manual testing can take up a lot of your time and costs, it is advisable to go for a tool that helps you do most of it manually. Testsigma is one such tool that eases compatibility testing to a great extent. It provides thousands of environments that sethatSet up are ready to use without any setup and coding knowledge, set up test cases quickly, and start executing them.



4. Performance Testing

Performance testing ensures the mobile application remains stable, functional, and responsive under an increased workload. The workload can be in terms of mobile device usage or website usage in the case of the mobile web.

These tests are essential for a mobile application that does not stop functioning under varied loads. Users may not think twice about switching from a wrong performing application, and you don’t have to think much about it if you did your performance testing well.

Parameters measured during performance testing ( for mobile ) include – speed, memory consumption, battery life, data transfer, etc.

Different types of performance tests are-

i. Load tests

We test the application performance by providing real-life expected load, i.e., the expected number of users.

Example: The expected load on a music streaming app is 20000 users per day. So, we will test it for different geo-locations, maximum users per day, session times, etc., ensuring that the app performs well under that load.

ii. Stress tests

We test the application performance by providing a higher than real-life expected load. This helps in realizing the application’s breaking point under a higher load. This helps ensure that the application performs well even in an unexpectedly high load.

Example: You must have heard of result-declaring websites crashing on the day of result declaration. Or e-commerce apps are failing on the day of big sales. In mentioned examples, lacked sufficient stress tests, or the load estimates were not in tandem with the actual usage. 

iii. Endurance tests

We test the application’s performance by providing a workload for a longer time to test its endurance.

Example: A banking application expects increased online transactions before bank holidays. These transactions keep happening throughout the day. Endurance tests ensure that the app performs well during such scenarios.

Some majorly used tools for this purpose are LoadRunner, LoadComplete

iv. Volume tests

We test the application performance by providing a high volume of transactions/ data to the application for processing. This testing is also similar to load testing and endurance testing.

Example: The tax filing website sees a high volume of submissions on the last day. Volume tests ensure that the website can handle such scenarios; this includes- database, memory, CPU usage etc.

Majorly used Tools: JMeter, LoadRunner

v. Spike tests

We test the application performance by providing several sudden increases (spikes) and sudden decreases in workload.

Example: When an OTT platform like Netflix releases a famous web series, there is a flock of users on that platform. This causes an extreme spike in the workload for some time, after which the app usage returns to normal levels. Spike tests take care of such scenarios because it is challenging to have so many real users to test; we use automated tools to create virtual users.

Majorly used Tools: JMeter, LoadRunner

5. Security Testing

When we talk about Mobile Security testing, we need to cover below points-

  • Authentication and Authorisation: Inefficient authentication and authorization checks in the code may invite malicious attacks.
  • Data Security: An application may expose sensitive data to other mobile phone applications and cause intentional harm.
  • Removing Hacking possibilities: Hackers are looking for vulnerabilities to find a way to hack the mobile phone and gain access.
  • Safe communication: Transmission of sensitive data over networks without encryption may cause havoc to user sensitive data.

Three ways to perform Mobile Security Testing:

1. Static analysis:

Code analysis identifies vulnerabilities and verifies the implementation of security measures. . Static analysis executes without the application itself. It can be done manually, using automated tools, or through a hybrid approach. During the manual review, we can take the help of the IDE ‘s or manually check the API and database calls. Many IDEs provide plug-ins and external tools to perform automated static analysis

2. Dynamic analysis:

The applications are executed in real time and tested for weak spots like authentication/authorization issues, server issues, and data transfer breaches.

3. Penetration testing:

It is a type of security testing conducted on a fully developed application. There are automated tools available for performing penetration testing on mobile applications. Read More on Penetration Testing Tools.

The response model might risk authentication if it uses a basic HTTP protocol. Hackers may steal the authentication information from here to break the system. Therefore, we should use a secure SSL protocol for authentication. That was just a basic security test. But it should give you an idea of its importance.

6. Installation Testing

When this type of testing is specific to a mobile, we test the ease and success of installing an application in various environments. Check for the components of the application are working in coordination and Installed. This also means that we need to check the uninstallation process. Delete All related files when uninstalling the application from the device.

We check the below points while performing Installation Testing-

  • Compatibility with the OS, hardware, devices, and their versions.
  • Where does the application gets stored? i.e., internal memory or SD memory.
  • Upgrade to a higher version should adequately work. The older version should work successfully If the upgrade is interrupted mid-way.
  • Check for memory space and behavior of application during installation. The application should show the appropriate message if there is insufficient memory.
  • Check for the battery and behavior of the application during installation.

Example: An app is tested for installation, during the installation process the network is changed from wi-fi to mobile device’s 4G connection. We would want to confirm that the change in network connection doesn’t stop the app installation in the middle.

Another example is that an app is not properly tested for the forced installation stop during installation. When used in real-life scenarios, apps when forced to break the installation process app, may cause some unexpected behavior on the mobile device.

7. Localization Testing

It is a customization process that ensures the application is compatible with the language/currency of the country or region used. This type of mobile testing provides the use GUI of the application appropriately and customized to make it relevant to the country of use.

We check the following during Localization Testing:

  • Linguistic accuracy
  • Cultural appropriateness
  • Messages, help documents, and commands are by the country/region
  • Properly customized symbols, logos, and inputs for the application.

Example of a localization: For an e-commerce website there is no option to change the currency to the local currency of the country. It is a localization testing-related bug. 

Automation of the Localization testing:

Automating the localization testing is challenging due to the variation in text lengths in different languages and the difference in currencies, zip codes, and symbols. Writing the automation code covering all of these differences is quite challenging. Identifying the ‘Web elements’ can also become difficult with different languages.

Example: The caption ‘Cancel’ helps recognize the UI element(button). In any other language, it will be different. Hence, it is required to use a locator which remains constant in all the languages.

Automation is challenging to implement; however, it could be rewarding in handling large projects. Implementing automated tests from the early-development be helpful for everyone in the team.

8. Exploratory Testing

“Exploratory Testing is not so much a thing that you do; it’s far more a way that you think.“, is a quote by Michael Bolton. Which clearly states that humans do it and not machines since machines/ automation cannot think. Exploratory testing means manually exploring the application to find its limitations and loopholes. Here, testers are not bound to follow the scripted tests, and they test cases on the fly by applying their thinking and creativity.

When considering this as a type of mobile testing, the testers explore the applications for-

  • Compatibility on multiple devices
  • Easy keypad usage
  • Speed of the application
  • Performance on interruptions by SMS, calls, and notifications
  • Visual testing of the application in portrait and landscape mode of the device
  • Proper display of navigation on the screen

Example: In real life when we are traveling through a car and we do not know the route, what do we do? That’s right, we explore! We explore by asking the people around calling a friend or using the road signs. We explore on the fly, which is exactly the same as exploratory testing. 

Consider a travel booking mobile app. On that app, a user usually applies a coupon code after they have decided the travel. But an exploratory test could be that the coupon was applied and then the user decided to do more of exploring and then change the travel details. 

There are no scripted test cases in exploratory testing. This testing is essential because users will not use your app according to how you scripted it. They will use their brains and explore your app without following a standard protocol. Sometimes, it is during this testing that major app crashes and security issues are uncovered.

9. Interruption Testing

This type of testing is very important for mobile devices because several interruptions can occur during an app use on a mobile device.

The main motive of this testing is that – while using an application if an interruption occurs then an application should be able to resume its state. To test that an application can resume work in case of an interruption is Interruption Testing. 
Let us consider an example of a bug because proper interruption testing was not performed on a mobile game app. The person was playing on the app. He was on a crucial stage and was about to finish the last stage of the game when the battery died.

The person quickly plugged it into charging and restarted the app, only to find that all their progress was lost. This app was not testing for interruption testing, where the interruption was battery discharge.
During running an app, if a voice call comes over the phone then also that is an interruption. The app should not freeze/ or restart from the beginning after ending the voice call. The expected behavior is that the app should resume the game from where the user left it.

 Interruptions for a mobile application can be

  • SMS
  • Internet disconnection
  • The device getting auto-locked while performing some other task like video/meeting.
  • Incoming call 
  • Notification from other applications
  • Alarm
  • Low battery notification
  • Connecting charger

 In case of interruption, the application starts running in the background and when resumed, it again starts working where we had left. Hence, Interruption Testing ensures the following points-

  • The application is not crashed or hanged
  • Application is resumed successfully
  • If we do not tap on the interruption, the application successfully ignores the interruption.

We have tools for interrupt Testing, e.g., UI AutoMonkey for iOS.

10. Memory Leak Testing

Most of the Android applications are coded in Java. Fortunately, Java has its own garbage collection frees all the unnecessary and unused memory. Sometimes, there can be scenarios where the previously used memory is not deallocated. Hence, the pile of unused and occupied memory keeps on increasing. This causes applications to crash because of less memory at their disposal. This phenomenon is called a memory leak.

Memory Leak Testing cannot be performed using black-box techniques. Hence, it is performed via white-box techniques at the code level. Also, it is better to unit test the application to catch memory leaks early in the development cycle.

It is advisable to test on multiple devices to better understand the memory leak pattern and get it fixed.

When this type of testing is not performed on a mobile application, it may cause the application to slow down and finally crash in the middle of the user operations. To rectify such situations, the user needs to restart the application again and definitely is not a good user experience.

Tools to detect memory leak:

  • Profiling tools like IDE e.g. Visual Studio, help us determine which area of application is using how much memory. Read here about Performance Profiling & Tools
  • Memory Validator- Memory leak analysis for C#, .Net, C++
  • Valgrind memcheck- Memory leaks for C and C++

11. Recovery Testing

During Recovery Testing, we test how well the application copes with a failure and starts working again. It is a non-functional testing type.

The failure can be :

  • Software failure
  • Connection issues
  • Device hardware issue

Read more – Mobile App Failure

During Recovery Testing, as a type of mobile testing, we will check that the application can restore the data after recovery. Another example could be that the mobile application can execute transactions during low battery or battery removal.

Example: When we have multiple tabs of a browser open in a system and suddenly the browser crashes. When we restart the browser, does it recover all the open sessions? This is recovery and to ensure this we perform recovery testing.

12. Bluetooth and Wi-Fi Testing

Bluetooth and Wi-Fi are not application-related features. They are mobile-related features and is a type of testing that is required during mobile testing.

Bluetooth Testing:

A mobile phone may be connected via Bluetooth to speakers, laptops, another mobile phone, etc. It is important to test the connectivity under different scenarios. Few of them could be-

  • Test the time for reconnection after a dropped connection
  • Test connections after restarting the mobile phone
  • Test connectivity while the mobile phone is already connected to other devices
  • Test on different devices and OS
  • Battery performance while a connection is on
  • Optimised file transfer

Example: The mobile phone’s Bluetooth has been checked for phone-to-phone connectivity on multiple devices. You find it working and are happy with the testing. Then, one day a user tries to connect the phone’s Bluetooth to the car’s Bluetooth to play songs. What if it does not work? It will be a terrible user experience. 

Similarly, during Covid-19 we have seen many countries adopting contact tracing apps that work solely on Bluetooth. If the Bluetooth testing of the mobile devices is improper, the Govt. will receive false information about the contact traces.

Wi-Fi Testing:

Mobile and its applications should work perfectly when connected to Wi-Fi. A few scenarios for Wi-Fi testing could be

  • When Wi-Fi connectivity is lost and then gained again, the application should resume.
  • Test the application’s behavior when the network type changes – 3G, 4G, and Wi-Fi.
  • Check the Wi-Fi speed.
  • Test the security of the Wi-Fi network; it should be safe from hackers  

Example: A mobile app works fine on Wi-Fi and other network types. Suddenly the internet connection is lost, and you try to connect with another device’s internet network using tethering to continue the app usage. But why is it not working? Maybe the testing was not performed on the app to work on tethering mode.

Here is a quick mobile testing checklist to test your mobile applications.

“Cloud computing is growing, especially as we are all used to having our mobile devices link us to data wherever we are,” said Steve Wozniak. This quote is apt to conclude this article as it perfectly depicts the importance of mobile and mobile applications.



Test automation made easy

Start your smart continuous testing journey today with Testsigma.

SHARE THIS BLOG

RELATED POSTS


Native Apps vs Hybrid App Comparison 5 Top Key Differences
Native Apps vs Hybrid App Comparison: 5 Top Key Differences
Accessibility Testing Tools_banner image
Mobile App Performance Testing: Tools and Checklist
Test Cases for Mobile Application & How to Use for Testing
Test Cases for Mobile Application & How to Use for Testing