Performance testing for mobile application

@anindita I’ll split my response into 3 parts :spiral_notepad:

:spiral_notepad: 1/3

The most reliable solution would probably be to use Firebase Performance Monitoring SDK.

Firebase Performance provides real-time insights into app performance. The SDK offers detailed performance metrics, such as network requests and app startup times, which can be used to optimize app performance and reduce load times. Furthermore, the SDK integrates seamlessly with other Firebase services, such as Crashlytics, to provide a comprehensive suite of tools for app development and monitoring.

What you can measure:

  • Network Requests: It automatically measures app startup time, HTTP/S network requests, and provides insights about the network performance of your app.
  • App Start Time: Firebase Performance Monitoring can track the time it takes for your app to start and become responsive to user input.
  • Screen Rendering: It can monitor the rendering performance of your app, helping you to identify and fix any issues that could be causing slow rendering times.
  • Custom Metrics: You can define your own custom metrics to measure specific aspects of your app’s performance that are unique to your app.
  • Trace Metrics: You can create ‘traces’, which are a series of code that you want to monitor. For example, you could create a trace to monitor the time it takes for a certain function to execute.
  • Automatic and Manual Instrumentation: Firebase Performance Monitoring SDK provides automatic instrumentation for some common tasks, but also allows you to manually instrument specific parts of your app.
  • Real-time Results: The SDK provides real-time results, allowing you to quickly identify and address performance issues.
  • Cross-Platform Compatibility: Firebase Performance Monitoring SDK works with both Android and iOS, allowing you to monitor performance across different platforms.
  • Integration with Other Firebase Services: It can be integrated with other Firebase services like Firebase Crashlytics to provide more comprehensive insights about your app’s performance.

:spiral_notepad: 2/3

But what if you want to use something without including a new SDK in the app?

Well, I would still strongly advise using Firebase Performance Monitoring SDK or something similar in the project. Or at least plan to add this SDK in the near future.

However, there are situations where it’s not feasible or even possible, so there are two other ways:

  • Apptim, or something similar
  • Cloud device labs

Apptim - or something similar
You can use ready-to-go tools like Apptim to just hook up to your local mobile device and measure the performance of the app.

But you need to check if the app is behaving in the same way with and without this tool hook-up to your device. I’ve stopped using Apptim as it was slowing down my client’s apps way too much, most of the time it was close too double the speed of each screen loading and each animation. Which made it unreliable to use on day to day basis on during RC testing stage.

Cloud device labs
Various cloud device labs offer the ability to measure and record the performance of the app.

It’s up to you what you need to measure, how and when.

  • Manual tests?
  • Automated tests?
  • Regularly or not?

For more, you can check:


:spiral_notepad: 3/3

You can also check other tools that you can use. List of example tools from one of my presentations:

1 Like