Native vs. Web vs. Hybrid Mobile Apps: Testing Tools and Techniques

Posted by Nadia Minaev in Mobile Development & Testing

Not all apps are made the same. Native web apps, mobile web apps and hybrid mobile apps are different in many ways. For this reason, you have to take a different approach to testing them.

Below, I explain how these three types of apps vary and what that means for your testing strategy.

Defining Native vs. Web vs. Hybrid Mobile Apps

Let’s start by defining each of these types of apps:

  • Native mobile apps are smartphone apps specifically designed for a particular operating system—iOS or Android. They are written in either Swift or Objective-C (for iOS) or Java (for Android). Native apps are installed on a device. They are built using an operating system’s SDKs and have access to different resources on a device: camera, GPS, phone, device storage, etc.
  • Web mobile apps are websites optimized for mobile browsers. Their functionality resides entirely on a server. They are written in JavaScript and HTML5.
  • Hybrid mobile apps combine features of native and web apps. They are written in HTML5 and JavaScript, like web apps. For the most part, they are web pages wrapped in a mobile app using WebView. However, they also have access to the built-in capabilities of a device. They are built using cross-platform frameworks like React, Ionic, Sencha and Xamarin.

Because of these differences between web and mobile apps, the testing approach should also be different.

Web apps testing

Why test web apps?

If web apps are practically like websites, and have already been tested for regular browsers, why do they need to be tested separately on mobile devices? The reason is that there are major differences between regular computers and mobile devices, such as:

  • Mobile devices’ screens are significantly smaller.
  • Mobile devices have less memory and less storage space.
  • Mobile devices use cellular network connection and WiFi, while regular computers use WiFi/ethernet connected to broadband.
  • Mobile devices have limited battery life and are supposed to be used unplugged most of the time.
  • The amount mobile device users pay for cellular data depends on the amount of data used.

What to test in web apps

Taking into consideration all these differences, web app tests should include the following:

  • UI testing: verifying that all UI elements are fully visible and well aligned for mobile device screens. Run this test for different screen sizes and resolutions.
    Amount of cellular data used by the app: Web apps rely heavily on transferring data from a server. If the amount of data is excessive, it might exhaust the user’s data plan and make the app unusable or crash it.
  • App performance: The amount of memory and storage space might differ significantly between mobile devices and regular computers, and even between different mobile devices. This and the fact that mobile devices use cellular connection might cause significant differences in performance.
  • Connectivity issues:
    • Test an app’s behavior when switching between cellular and WiFi connection
    • Extensive use of ads’ networks might cause bottlenecks.
  • Battery usage: Extensive use of JavaScript might cause fast battery consumption.

Native and hybrid apps testing

What to test in native and hybrid apps

Native and hybrid apps use different underlying technologies, but they are similar in terms of the functionality they provide—Hence, the testing approach will be the same for both types of apps:

  • Functional testing: Test that all of the app’s features work as expected. These tests include:
    • Testing the app’s use of built-in device resources: location, camera, address book, etc.
    • Monitoring battery consumption and memory usage while performing functional tests
    • Testing the app’s behavior if it faces interruptions like phone calls, SMS and messages, push notifications, etc.
    • Install/uninstall testing
    • Screen orientation testing
    • Gesture testing
  • Compatibility testing: Test the app’s functionality on different devices.
  • Connectivity testing:
    • Test with different types of connection
    • Switch between different connection types
    • Test without network connection (if the app is designed to work offline)
  • Performance testing

Testing tools

There are plenty of tools available for mobile testing. They use different technologies to create and run tests. The diversity of supported features is amazing. Different tools support different operating systems, different types of apps, real devices, simulators, and emulators. Some of them are open source, and some of them are commercial. Some tools run on a cloud, others run locally. This list is just an overview of some existing testing frameworks and their abilities to use web and native apps.

Name

Web

Native

Hybrid

Android

iOS

Selenium

Selendroid

Selenium with iOS-driver

Appium

Espresso

XCTestUI

Calabash

Robotium

MonkeyRunner

UIAutomator


Summary

Testing of mobile web apps is different from testing both web browsers and testing native/hybrid mobile apps. It requires a different approach from browsers because of differences between mobile devices and computers, and a different approach from native/hybrid apps because of the way they are built. The creation of automated tests for web mobile apps requires a different set of tools.


Nadia Minaev is a software engineer with deep knowledge in a wide variety of modern technologies. Throughout her career she has worked for such well-known technology leaders as HP, Intel, and others. Nadia founded Alkon Technologies, a software development company, and developed FarmGalaxy, a mobile app that connects local farmers to their customers.

Discuss: Native vs. Web vs. Hybrid Mobile Apps: Testing Tools and Techniques
0 Comments

Free Trial

Get access to a free 14-day trial version, or contact Sales for more information.