Things you should know before you start with Mobile application Testing

Monil Joshi
7 min readOct 29, 2021

--

Now in modern days having a mobile phone or a smart phone is a 4th basic need after Food, clothing shelter. Increasing number of users proportionate in to number applications that has been created for the users to use. Due to which Mobile testing is one of the important skill to have in the software industry. But question is,

What is Mobile testing?

In one liner, we can say testing of an application on mobile device for its user experience, functionality, performance and so on. Immediately another question comes to your mind is,

Why we need Mobile application Testing?

Now a days, specially after pandemic lot of businesses acquiring online business models like on Mobile. People preferred to use mobile application be it a native or accessing URL thought mobile rather than sitting on laptop or Desktop to surf the product they want to buy.

Bringing business on mobile is not a choice now a days but a need. User can buy your product from anywhere anytime. So if user experience is bad with application which is an actual medium to connect your customer to your product, in-spite of having good quality products your business will not survive due to poor user experience of the medium you are using to showcase your products.

Do I just mentioned, people preferred to use native app or URL? What is this native and url on mobile?

These are nothing but a different types of Mobile applications. Next questions that comes to your mind is,

What are the types of Mobile Applications?

There are primarily 3 types of Mobile applications we have.

  1. Native Apps: Native apps are written in to native technology to particular os where we are going to installed the apps. For example native applications for android OS are written in Java or Kotlin where as native applications for iOS are written in swift or any other native supported language. These apps can directly installed from application store like Play store for android ad Apple Store for iOS. As name suggest they are are native applications so they are designed to make use of full advantage of the device features.
  2. Web Apps: Web Apps are anything that is running on web browser. These web apps are running on relative browser like chrome or Safari or any other supported browser. User can use any website on the mobile is web app. These are basically written in web development technology HTML, JavaScript ,React etc
  3. Hybrid Apps: These are the midway between native and web apps. These are partly native and partly web apps. You can install it from play store and it does have icon and listing it in installed apps like native applications. But inside that native application it allows you to browse ay website. In this case it will have its own web view inside it. These application first build standard web app and wrap inside native app
  4. There is another app type is PWA i.e progressive web app which basically can download using given link and no need to download it from any app store

Here I have mentioned web application of mobile. OMG lot of confusion. If I am testing web application on desktop why I should test same application on Mobile. Here comes a next question,

What is difference between testing web application on desktop and web, native or hybrid application on mobile.

Mobile app testing involve lot of other aspects while testing application on mobile. These are the things we should consider for mobile testing.

  1. Check type of application under test (AUT). It could be one of the above app type.
  2. Check target set of audience
  3. Check target os platform. Android, iOS, both.
  4. Check for target os version: This is very crucial. As technology evolves, there are lot of different android os versions and iOS version available in the market. You can check for distribution of os version i the below links

iOS distribution

android distribution

You can audience is distributed in different platform versions so need to cover all those platforms

5. Different resolutions

6. Different screen size

7. Different screen orientation: There are 2 orientation in mobile for which testing is done. Portrait and Landscape

PC: https://www.analyticsboosters.com/

8. Also need to cover mobile devices from different companies.

Then you might have one more question about mobile testing. What type of testing I should perform on Mobile application and what it covers.

Type of Testing that should get covered

  1. Functionality: This type of testing is very obvious that basic functionality of each feature gets covered as separate module and with integrated whole as software product. It includes
  • Installation process
  • End to end business flow.
  • All the user interactions with or without input
  • Expected outcomes on providing inputs.
  • Testing all the screens with different gestures like touch, tap, long press, scroll, swipe and navigations
  • All the alert box with appropriate types like error, warning and so on.
  • Error handling with correct messages.
  • Integration calls with other dependent applications like maps, sms app or social media apps
  • Pressing hard-keys like pressing home button and returning to app will persist state where it leaves
  • Pressing other keypad buttons and shortcuts if any
  • Uninstallation process

2. Performance Test: It ensures over all performance of the application. In includes

  • Size of the application
  • Time take to install the app from play store
  • How much memory application is utilising while running in foreground
  • How much memory application is utilising while running in background
  • How much battery application is utilising while running in foreground
  • How much battery application is utilising while running in background
  • How it handle network failure
  • How much network bandwidth it consume
  • How it handle poor network experience
  • Response time of an application on performing certain actions like touch, long-press, swipe, scroll, zoom in, zoom out
  • How it works with native elements like camera.
  • At what condition, it crashes.
  • How much processor it uses and ending up heating up devices

3. Security Test: It ensures security measures for user in terms data and information. It includes

  • Authentication for valid users
  • storing data safely
  • encryptions for password
  • Other security aspects for banking, payments related to app

4. Usability Tests: It ensures user experience and how to make easy to use application for user which will make user’s life better. It includes,

  • Correct widget at proper place with correct size will be present like button, input text box, scroll bar should are intact with the screen size
  • Images are proper in dimension. It should be proper even after zoom in and out
  • Suggested text on input box, buttons and links are readable
  • Colors, animation and background used in the application is compact with the use or domain of the app. for eg we should not have funky background for bank application

5. Compatibility Test: As mention in the difference between web testing and Mobile testing compatibility test plays vital role in the mobile test. It includes

  • Application is backword and forward compatible
  • Test app in differet network bandwidth like 2G, 3G, 4G and wifi
  • Test app with and without GPS
  • UI is compatible with size of the screen
  • Check application across different os like iOS and android
  • Check application across different resolutions
  • Check application across different screen sizes
  • Check application across variety of mobile phones
  • Check application across different brand / companies phone
  • Check application in different hardware configuration
  • Check application in different software configuration
  • Check application behaviour with interruption of mobile handset services like getting calls from other apps, SMS, notifications, reminders, Alarm.

6. Recovery Test: It ensures application gets recover in case it get crash. It includes

  • Handling crash or interruption events
  • recovery of application after crash
  • State of an application is persisting after crash
  • User data in application is persistent and safe after crash and recovered if needed

6. Localisation Test: Your application is running on many devices in many regions. To reach the most users, your app should handle text, audio files, numbers, currency, and graphics in ways appropriate to the locales where your app is used.

Mobile testing way beyond these testing type and points I have included. These cases will get extended from one app to app based on the domain it is used like banking app, payment app, Gaming app, social media app.

To test all these thing for single app still not at all easy job to and error-prone. Targeting and testing on a single device only it will take lot of to and from depends on bug life cycle so just think of covering all the scenario for different type of screen size, resolutions, brand, platform version. This is called device fragmentation.

Device fragmentation refers to the wide variety of devices that are in use at any given time. This is important because websites need to ensure a good user experience on as many devices as possible. As per latest survey Device Fragmentation is growing 20% Per Year.

At any give point of time every app developer be it an individual or a company can buy all the targeted devices and keep it. It will be too much expensive. So there are 2 solution for this

  1. Use of Emulator and simulator. These are built-in device which simulates behaviour of real device. It uses machine memory and CPU. This can be build using IDE where we write code for creating applications like Android studio for android and XCode for iOS.

Emulators are different android devices on windows / mac machines

Simulators are different iOS devices on Mac machine

2. Sometimes even after testing application of emulator and simulator we have to check application of real devices in this case concept like device farm, Mobile infra comes in to picture. Device farm or cloud services like IAAS which provides Infrastructure as a service. It provides you devices of different type, brand, scree resolution , screen size, orientation. For eg AWS device farm, Sauce labs, Perfecto

Now you got clear picture of mobile testing and how huge it is to perform.

But this is lot of information and hell lot of things to do to test a single app.

How can we cover lot of testing in given time ?

To overcome out head we can use some tools/ framework available in the market some of the open source tools or some are the paid framework. Primarily used are

  1. Appium : Appium is cross platform test automation framework based on client-server architecture.
  2. Espresso: Espresso is mobile test automation framework for android. Most of the unit and integration tests are written in espresso
  3. XCUITest: Espresso is mobile test automation framework for iOS.

We will be seeing all these Testing tools and frameworks in upcoming articles.

Keep reading..!!

--

--

Monil Joshi

I am having an 8+ years of experience in software testing. Working with Web, Mobile and API technologies. Visit my GIT https://github.com/monilj