Bitro Launching Awareness

Bitro Decentralize Finance platform will be launch soon. It will comes with multiple service from different products that we will launch such as liquidity aggregator and yield farming for multiple…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




How to Get Started with Mobile App Testing

With 3.6 billion smartphones globally and thousands of mobile applications being pushed on app stores, engineers are finding new career opportunities in mobile app development and testing. The mobile industries are getting flooded with millions of apps. Thus, mobile app testing is becoming crucial.

Mobile app testing is the process of testing mobile applications for required quality, functionality, usability, compatibility, performance, and other characteristics.

Testing is an essential part of every software development before making it available to the customers, and with the mobile app, it has become more critical. The growing number of mobile devices is leading to massive OS fragmentations, various screen sizes, and resolutions.

Android & iOS are the most popular smartphone operating systems. There are millions of applications designed for these platforms and available for download on the Google Play and Apple App Store. The Mobile App success can be measured by the number of downloads, positive reviews, and the frequent updates and the new features with bug fixes.

Mobile apps are primarily categorized into three types, based on their functionalities and the technology used for programming them:

Native Apps are explicitly coded for smartphone operating systems (OS). This includes the majority of Android and iOS devices. Being programmed for one specific platform, native apps cannot be mix-matched.

Web Apps are operated similarly to native apps but are accessed via web browsers and limited feature functionality. They are not standalone apps that require downloading and installing them onto your smartphone.

Finally, there are Hybrid Apps. They are built using multi-platform web technologies (for example HTML5, CSS, and Javascript) and then this code is embedded into a native wrapper using frameworks like PhoneGap, Xamarin, Mobile Angular UI, Ionic, etc. These are mostly web apps that operate and feel like native apps.

Mobile applications, by their definition, are software applications that run on portable devices operating on specific OS. These types of apps are available for download through OS-specific portals like Google Play Store and Apple app store and are installed onto users’ devices with higher-level hardware access.

Web Apps download specific parts of the program from the internet onto the devices every time they run. Google Play Instant Apps are the best examples of web applications that don’t require complete installation, manual updates, and on-device hardware horsepower. They are mostly run on servers.

Desktop Apps are standalone apps that are installed on desktop and laptop devices. These can be full-fledged like Microsoft Office Suite, Google Chrome, or can perform few functions like the calculator and calendar apps. Usually, desktop apps rely entirely on device hardware.

As Windows and macOS control your desktop or laptop computer, Mobile OS controls your smartphones and tablets. When you buy any mobile device, it comes with an operating system for that specific device. This smartphone OS manages the software and hardware resources of your mobile device, similar to computer operating systems.

There are following different operating systems available for mobile phones,

Mobile apps should be rock-solid before being launched in the market. But there are key challenges that QA engineers might face while testing their apps.

Display Resolution & Aspect Ratio: The varieties of display resolutions — from 480p to 1600p — can be overwhelming, given there are now variable refresh rates. For testing, this means running the app on dozens of devices, starting from budget devices up to bleeding-edge flagships.

Mobile Network: There are several local standards for mobile connectivity, including cellular and WiFi. For international apps, developers must ensure their apps are compatible with every standard. Data consumption is another aspect where every region might not have the privilege of unlimited usage.

Hardware Access: iPhones are renowned for stable hardware with the latest OS updates. The same isn’t applicable for Android, where you’ll find half-a-dozen SoC vendors and manufacturers. Thus, mobile apps can’t utilize Android hardware extensively, as they must support unlimited manufacturers.

OS Versions: iOS devices are famous for getting quick and consistent OS updates for five years. Who would believe that the iPhone 7 from 2016 runs on the latest iOS14? For developers, they must support older Android versions and API throughout five years of Android developments.

Internationalization: Most of the mobile apps are designed for international markets. Testing apps for translation and regional language support is only half the story. Developers and testers should also account for regional time settings and audiences. These traits have always left developers puzzled.

For winning the battle of building an overall competent app, you must be aware of the challenges and develop robust mobile app testing strategies. You’ll be benefited if you keep these essential factors in mind:

To use smartphones and tablets, users interact with applications with gestures. There are several different gestures (see Image 1 below).

Image 1 — Gestures on Mobile

So, it’s always an effective idea to use the above mobile vocabulary while posting bugs on bug management tools.

Smartphone devices use two types of orientation- Landscape and Portrait. The accelerometer in the smartphones is used to align the screen depending on the orientation of the device.

Mobile apps use this capability and create a better user experience by providing support to the additional layout with a simple turn of a device, and without pressing any buttons. So while testing mobile apps, one should check if the app supports both the orientations or only one, and depending on this, the number of test cases can be added to test the orientations.

For eg. The YouTube app takes advantage of the available space by adding additional functionality in landscape mode (See Image 2).

Device fragmentation refers to the uncountable numbers of mobile devices that are active at any given time. This is quite important as app developers, and testers must ensure good user experience across all such devices. According to Statista, the number of smartphone users has crossed over somewhere around the 3.5 billion mark.

There are so many combinations of mobile devices and operating systems known as fragmentation. Mobile device fragmentation is mostly associated with Android OS as there are a large number of manufacturers who provide their own forked versions of the OS such as One UI by Samsung (for Galaxy series), OxygenOS by One Plus, MIUI by Xiaomi, Huawei EMUI.

To make mobile testing manageable, we need to consider this as a crucial point while creating a test plan (see Image 3). Due to such diversity, the tester needs to assure whether a tested application is going to work perfectly with the customer-end users’ devices. The testing can achieve this by focusing on the below points,

There are various different effective mobile testing types including Functional testing, Security testing, Performance testing, Usability testing, Localization Testing, Installation testing, Compatibility testing, and Interruption testing. Most of them are the common types that we also follow for web testing, but the following 2 types including Compatibility testing and Interruption testing are different.

Compatibility testing refers to checking and validating your application in order to ensure behavior remains the same across device combinations. Developers spend more and more hours into planning and developing apps, as they expect the best possible user experience across all devices.

It is a type of mobile application testing that deals with — how an application reacts to interruption and resumes to a state before the interruption. While testing different types of interruptions, we need to make sure that if the application gets interrupted it should enter into a suspended state and restart as soon as the interruption ends.

We all have interruptions in our day-to-day life. Consider a real-life example of being interrupted by a call when you are watching a video on YouTube. Some of us may notice the call, ignore it and continue watching the video, a few more might attend the call, and then resume watching the video.

However, the person’s thought while watching the video is interrupted or lost for which interruption testing helps to find out which behavior the app exhibits. The expected behavior for the above example is for the video to pause while the user attends the call and resume back when the call is over.

Below there are samples of Interruptions in Mobile Application

The above list for the interrupting scenarios is not exhaustive but includes the most common scenarios.

Now we will see how one can test the apps on the Android and iOS devices and what are the useful points to keep in mind while performing these tests.

Jointly developed by Google and Open Handset Alliance, and built on the Linux kernel, Android is the mobile OS that dominates almost three-quarters of the smartphone industry. Powering smartphones, tablets and even laptops, Android is primarily designed for touchscreen mobile devices.

In order to install the Android app on your devices for testing, you need to sideload the app which is from outside of Google Play. This option is disabled by default for security reasons.

Follow the below steps to enable sideloading and install the APK file,

The Android Emulator simulates a device and displays it on your development computer. Once you’ve developed the app in Android Studio, create an Android Virtual Device (AVD) for installing and running your app.

How to create a new AVD:

Now, from the toolbar, select your application from the debugging configs. From the target device’s drop-down menu, select the AVD that you created. Finally, click Run (see Image 4).

Image 4 — Virtual devices on Android Studio

You can launch an app on the emulator when you run a project from the Android studio, or you can drag and drop an APK file onto the emulator to install it. Once the app is installed on the emulator, you can start testing it.

Android has amazing hidden settings that can be accessed by enabling “Developer options’ ‘ from the device setting (see Image 5). This feature has a lot of advanced and unique features including USB debugging, Tweak Animation Settings, show CPU Usage, Background process limits, Force GPU rendering, and so on.

Image 5 — Enabling Developer Options in Android

That’s it. The “Developer options” menu will now appear in your Settings menu.

While testing the mobile app, there are tons of reasons to provide Logs highlighting any findings to the developers.

From the top-right corner, choose ‘No Filters’, and you’ll see your Android device’s logs being gathered. Highlight the required logs and save as .log (see Image 6).

Image 6 — Logs in Android

To capture screenshots from your Android device, first, run your app on the Android device or emulator. In the Android Studio, select View > Tool Windows > Logcat. Now, select the Android device from the drop-down on the top window. Click Screen Capture on the left side of the window.

Follow the below steps to capture the screenshots without Android studio,

That’s it. At the top of the screen, you’ll find a captured Screenshot.

The main reason for you to record the screen of your app is so that you can use the video footage to attach it to the defect. With Android 10, there’s now a built-in screen recorder. You can access it using the notification bar quick settings.

Also, there are so many screen recording apps for Android available on the play store. One of the best apps is — AZ Screen Recorder. It is a stable, high-quality screen recorder for Android that helps you record smooth & clear screen videos.

You can also record videos using the Android studio. To capture the video of your screen, first, run your app on an Android device. Go to Android studio, Select View > Tool Windows > Logcat. Now, from the screen recorder settings, select Bitrate, and resolution. Click Record on the left side of the Logcat window. Once that’s done, save the final output as an MP4 file.

The Android Profiler lets you understand how your app utilizes the device’s CPU, memory, network, and battery resources. To open the Android Profiler, select View > Tool Windows > Profiler. When you launch the debuggable app, the Android Profiler starts collecting profiling data and resource usage.

It is a good practice to enable touches in Android, so while recording a video for the bug a circle will appear under your finger and follows you as you move around the screen. This would be helpful for developers to see how many taps were done on the screen while reproducing the bug. You can enable this from using the steps below;

Open Settings > Developer Options > Scroll down to enable Show taps.

iOS is the second most popular mobile operating system after Android. Developed by Apple Inc, iOS is only limited to Apple mobile devices (see Image 7). Over the years, Android and iOS devices are competing for higher market share. But iOS is partially focused on the premium segment with a 25% share.

OTA (Over The Air) Deployment allows you to install your apps via HTTPS. Do the following for installing your app via OTA.

You can also install iOS apps using other tools like TestFlight or Diawi. Find below detailed steps for the same.

To test beta versions of apps using TestFlight, you’ll need to accept an email or public link invitation from the developer and have a device that you can use to test.

As mentioned earlier, it is always a good idea to provide logs in case if we find an app crash or any other critical issue. This will help developers to find the root cause of the defect.

Oftentimes, you may prefer launching the Simulator without launching the app. This helps in monitoring how your app launches from the home screen of your device, or if you want to test an iOS web app in the Safari browser. To launch the iOS Simulator on xCode, follow these steps (see Image 8).

Image 8 — iOS Simulator

UDID stands for Unique Device ID. For Apple iOS devices, the UDID is the unique sequence of 40 letters and numbers. For an Apple Developer to register an iOS device for testing, the unique UDID is required first. Here’s how to get the UDID of an Apple iOS device (see Image 9).

Image 9 — UDID in iOS

Firebase Crashlytics is Google’s real-time crash reporting program that helps you with tracking and fixing stability issues with your Android app. Firebase Crashlytics saves you from tedious troubleshooting by intelligently grouping app crashes and highlighting the reasons that might have caused them.

Selection of mobile devices for testing is an essential part of strategic test planning that tracks success and assures high adoption rates amongst the end-users. The smartphones and tablets landscape today is highly fragmented, spanning many devices across manufacturers and models.

While selecting the devices for testing, we need to make sure that it should support the maximum number of devices. Therefore, it is important to choose the ideal list of devices to test your mobile application.

The following are the parameters for choosing devices for mobile app testing:

It is always an effective idea to test your mobile application on real devices, but it can be considerable investments of money. So to save on the cost, we can also test our application on Emulators and Simulators. They are easy to set up and available easily. You can make the use of the emulators to explore the behavior of your mobile application.

The emulator versus real device decision also depends on where you are in the development lifecycle. Here are some pros and cons of using emulators;

Device Cloud is the mobile testing environment that allows app developers to evaluate their app’s performance remotely. This offers app developers with access to modern virtual devices, without spending on hardware.

Device Clouds with physical hardware may also provide additional insights into factors like real-time CPU temps, memory usage, and battery drainage. Find below the best 5 device farms,

Nowadays, most of the companies use Cloud-Based Testing platforms for testing due to the reason of the device fragmentation. With device clouds, one can get a hold of many devices with different OS versions from the different manufacturers to test their apps.

There are some challenges you might face while using device clouds including testing the apps for a performance like Battery usage, storage usage. Also, network coverage testing can’t be done easily on clouds and for that, we need a real device for testing.

With real devices, you can use the device hardware to perform many tests. For eg., if the app under test needs to use the mobile’s camera (eg. to scan barcodes or click pictures) — this cannot be done in most of the device farms.

In today’s world of mobile apps, mobile application testing is highly recommended and very crucial for better user experience. A bug-ridden mobile application will definitely affect your app’s success ratio as the user might start posting negative reviews on the app stores and this may also set a bad impression for your app.

To boost the in-app experience we should build a solid test strategy by keeping in mind the points mentioned in the above article including the market share of the different OS, manufacturer-owned flavors of the OS, possible test scope (performance, security, stability, etc.), and selecting right devices for the testing. This will help to achieve the maximum test coverage and hence will improve the number of downloads, customer reach, and positive reviews on the stores.

Mobile app testing is essential for enterprises to engage and retain users and make them return to the app by providing the best experience possible for every customer.

Add a comment

Related posts:

How a Negative Past Can Build a Positive Future

When something troubles me, the hardest thing I can do is try to forget. It doesn’t matter how small the situation might be, I’ll always find myself dwelling over it somehow. Worst-case scenario, my…

Top Advantages of Dealing with a Reputable Web Design Company

Planning a site is must to get business from clients engaged in web-based business. Introducing your site online is fundamental along these lines, it is vital to expertly plan it. With the assistance…