5 things to consider when testing mobile apps

Mislav Stanic
11 minutes
Reading time

The software testing process is integral to developing high-quality applications as it helps ensure they work as intended, with as little bugs and defects as possible.

This process helps provide users with the best experience possible and gives your app a better chance to stand out among the competitors and succeed.

You might already know some of the different testing practices, such as testing an app’s functionality and performance.

Still, these are not the only considerations when testing a mobile application, as many factors can cause setbacks if left unchecked.

This article will provide an overview of five main aspects of testing you might want to consider if you wish to ensure this phase is as most effective as possible.

Let’s get started.

Multitudes of different configurations

With thousands of different devices on the market, accounting for this variety of configurations is one of the most important considerations when testing a mobile application.

Unlike desktop apps, mobile applications are used on a much wider range of devices with varying screen sizes, operating systems, and versions—each of these variables potentially affecting the app’s functionality, usability, and performance.

The different aspects of a mobile device configuration include:

Mobile device configuration elements
Source: Shake

As you can see in the image above, a device’s specifications include an extensive list of components.

You might want to keep them and their different combinations in mind while developing an app, as they can affect how an app works and performs.

It’s essential to test an app on as many device configurations as possible and this is achieved through compatibility testing.

Otherwise, users may encounter issues such as crashes, poor performance, or user interface (UI) issues otherwise.

There are four main types of compatibility issues that can arise in an app.

Types of compatibility related issues
Illustration: Shake / Source: Headspin

For example, a simple characteristic such as the size of the screen on a device can drastically change the look of an app, affecting its layout and design, as well as displacing and changing the size of buttons and text.

What is more, all of this can affect the app’s usability.

Bug and crash reporting tool for your mobile app.

An app designed for a larger smartphone may look and behave quite differently on a smaller device, rendering elements too small to read or interact with, and leading to difficulties navigating the app and a poor user experience (UX).

Therefore, a well-designed testing approach must include a way to guarantee that an app works on different device configurations.

Compatibility testing aims to identify and eliminate the mentioned issues by checking how a software application behaves on various configurations, and putting it through the different types of tests listed below.

types of tests
Source: Guru99

During these testing procedures, testers simulate the app’s behavior on different devices, operating systems, and network states, ensuring that the app works as intended and provides a seamless user experience across each configuration.

Performing these types of tests across a representative range of devices can help ensure that your app functions properly for as many users as possible.

Overall, testing for compatibility across different devices is essential to ensure an app provides a seamless user experience, regardless of the specs the users are working with.


Various network bandwidths

When testing an app’s functionality and performance, it’s crucial to consider the various network configurations under which users may be operating.

Not all users have access to high-speed networks, and many network connections may not be stable or reliable.

This needs to be taken into account and accommodated before releasing an app to a broader audience.

To address this issue, various WiFi and cellular network conditions and different worldwide mobile carriers should be tested to ensure that an app always performs as intended.

Such testing helps avoid some common connectivity issues, such as:

Common network connectivity problems
Illustration: Shake / Source: TheNewStack

Both jitters and packet loss are related to the reliability and consistency of data transmission in a network, causing delays, slow loading times, and data loss.

Network speed, on the other hand, is affected by many factors, such as bandwidth and traffic—determining the overall rate of data transfer within the app.

All three of these issues can cause poor app performance, frustrating end-users and contributing to a negative user experience.

Ultimately, they can lead to low user retention and diminish your app’s chances of success.

To test an app’s performance under different network conditions, testers can use network emulators or simulators that mimic these conditions, including simulating jitters, packet loss, and slow network speeds.

For example, BrowserStack allows testers to evaluate an application’s performance using network simulation.

BrowserStack screenshot
Source: BrowserStack

As you can see, the App Live interactive testing feature simulates a variety of these conditions to test an app.

This includes 2G, 3G, and 4G connectivity that testers can change in real-time on a range of real devices.

The Throttle Network feature also allows testers to create custom network profiles, as illustrated in the following image.

Custom profile screenshot The Throttle Network feature
Source: BrowserStack

The parameters that can be changed include the download and upload speed, the percentage of packets you want lost, and the network latency, measured in milliseconds.

When configuring these simulated conditions, you might want to make sure:

  • The app works with both high and low bandwidth
  • A three- or four-second latency doesn’t delay user operations within the app for more than a few seconds
  • Changing the network configuration while the app is running doesn’t affect its performance, accounting for unpredictable network connections

In summary, using network simulation and considering various network states during testing is essential to help ensure optimal app performance and functionality under a range of network conditions.

End-to-end mobile app security

If you want to protect users and your business from attackers, one of your primary aims during testing is to create an app with as few vulnerabilities as possible.

An app riddled with security issues is unlikely to succeed and gain users’ trust, as users are increasingly concerned about the safety of their personal information and sensitive data.

Unfortunately, users’ concerns are at odds with the state of mobile app security, as a research report from Positive Technologies found.

high-risk vulnerabilities in mobile apps
Illustration: Shake / Data: Positive Technologies

The most common problem was insecure data storage, found in 76% of apps—putting passwords, financial data, and other sensitive information at risk.

An insecure app can result in decreased usage, negative reviews, and even legal action when the damage is severe, so security should be a primary concern during testing.

Here are some other key reasons why app security testing should be a top priority:

Above all, users rightfully expect their sensitive data to be safe, so it is vital to thoroughly test the mobile app to discover any vulnerabilities that could be exploited during cyberattacks.

So, how do we effectively test an app’s security?

This activity is done by end-to-end security testing, which involves identifying potential vulnerabilities and risks at every stage of the app’s lifecycle, including during development, deployment, and maintenance.

There are several types of security testing conducted throughout the development lifecycle:

types of security testing
Illustration: Shake / Source: Cyber Security Hive

All of these testing types are conducted together and at regular intervals to ensure that an app is secure from multiple potential attack points.

By simulating real-world hacker attacks, testers can identify vulnerabilities in the app’s network, cloud, database, and API infrastructure and provide detailed reports that help developers and stakeholders make necessary improvements to improve the overall security of the app.

As security risks can be highly damaging to your reputation and business, you should consider addressing any security bugs with a thorough testing procedure during each phase of development.

Test automation opportunities

One practice that can potentially streamline the various testing practices we’ve covered so far is automation.

As you may already know, there are two types of testing, manual and automated, and their key characteristics are shown in the image below.

manual vs. automation testing
Source: Net Solutions

The need for efficiency and meeting release deadlines has made automation testing an attractive option.

Its speed and reliability allow companies to optimize their testing process and achieve faster time-to-market.

However, even though manual testing can be time-consuming and prone to error, it provides crucial benefits—allowing for a more in-depth analysis of a piece of software and conducting tests that are difficult to automate, such as exploratory, usability, visual, and user acceptance testing.

Or, as former senior director at Perforce Software and best-selling author, Eran Kinsbruner, writes:

Eran Kinsbruner quote
Illustration: Shake / Source: Perfecto

So instead of looking for ways to completely replace manual testing, you can try using various software tools to partially automate this process, making it more efficient and effective while retaining its many benefits.

One such tool you can use is our bug and crash reporting tool, Shake.

A crucial aspect of manual testing is writing detailed bug reports that can help developers address defects more effectively.

Shake supports these efforts by automatically collecting relevant data and attaching it to reports, so testers don’t have to enter everything by hand.

With Shake, anyone can write bug reports from an intuitive interface within the app—invoked by just shaking their device when a bug or crash occurs.

Shake new ticket screenshot
Source: Shake

These reports will automatically attach over 70 metrics of relevant information, while some of this data, including network status, CPU usage, and memory usage, is recorded moments before a crash occurs.

Using tools like Shake, manual testers can have an easier time reporting bugs, improving the manual testing process and leading to faster resolution of defects.

The quality of user experience

The final thing to consider when conducting testing activities is always to keep the user’s needs and expectations in mind—focusing on the user experience.

UX is a crucial consideration when it comes to creating a piece of software, as it heavily influences whether users will adopt your app, use it continuously and promote it through word-of-mouth.

This idea is supported by data, with research by Spiralytics stating that:

72% of customers will tell six people about a positive experience with a product
Illustration: Shake / Data: Spiralytics

While most users will spread the word about an app if it’s enjoyable, the opposite is also true, and 13% of users will share their negative experiences with 15 or more people.

And these negative experiences can ultimately lead to an app’s failure—just look at these examples.

So, while testing the app’s performance, functionality, and security are vital elements in the testing process, an app can still fail if the user experience isn’t taken into account.

Ultimately, an app needs to be useful, enjoyable, and easy to use, and the testing process enables this with two practices:

user testing vs. usability testing
Source: WeAreBrain

User testing can be incredibly beneficial when creating an app from scratch, as real users can direct your efforts into creating a product they will enjoy using.

During the creation of the highly successful Airbnb app, co-founder Joe Gebbia used this practice to great effect, and he recalls his experience as follows:

People told us what they wanted, so we set off to create it for them. Ultimately while solving our own problem, we were solving someone else’s problem too.

Usability testing, on the other hand, is an often-used technique that helps improve UX by providing valuable insights into how users interact with a product, identifying pain points, and allowing for changes to be made to improve the overall UX.

It can be used to detect issues such as:

  • Confusing navigation
  • Inconsistent design
  • Poor readability or visibility
  • Lack of accessibility
  • Inefficient workflows

By addressing these issues, usability testing helps improve the overall UX, making the product more intuitive, engaging, and satisfying to use.

Conducting thorough user and usability testing can ensure that an app provides the best possible UX—improving customer satisfaction and engagement, leading to a well-received app upon release.


As you can see, the mobile app testing process doesn’t concern itself solely with conducting tests and reporting bugs—there are many other factors to keep in mind, including the different testing environments, UX, and ways to automate this process.

We hope that by reading this article, you gained a better grasp of the importance of a comprehensive testing process as a way to ensure an app is high-quality and satisfies your company’s needs and user expectations.

By understanding the five considerations we covered and implementing them in the testing process, your organization can help conduct this development phase as effectively as possible, increasing the chances of your product succeeding when it hits the market.

About Shake

Shake is a bug and crash reporting tool for mobile apps. It was founded in 2019 with the mission to help app developers spend less time on debugging and manual overhead — and growing daily since thanks to a small and dedicated team of geeks based in the EU.

Meet your favorite bug and crash reporting tool.

Add to app in minutes

Doesn’t affect app speed

GDPR & CCPA compliant