Mobile Load and Performance Testing
Performance testing refers to the process of observing how an application behaves in terms of responsiveness and stability under certain conditions, for example in the case of demand from a certain number of users simultaneously or low memory/space resources. Performance testing helps to identify the maximum operating capacity that the application can manage to continue working with acceptable performance in order to measure what parts of the application cause the application to perform poorly. In addition, load testing can verify other software's quality attributes such as scalability, reliability and resource usage.
Mobile performance testing is more challenging than testing other desktop or website applications because the network connection is not as fast as it is for desktop applications, bandwidth is reduced, and the connection is subject to unexpected disconnections. In addition there are global differences in network speed and a diversity of devices with specific characteristics. Every day the number of mobile device users increases, and they all expect their mobile experience to be as fast as their desktop experience. A slow response time or intermittency will produce frustrated users and the greater probability that users will abandon the application; this is the main reason that load testing is a critical factor in determining the success of mobile applications.
Which aspects are involved in the performance of an application?
The performance of an application must be reflected from two different points of view (server side and client side):
Server side: Response times, streaming resource intensive multimedia packets, delays in delivery of messages, application crashes, resources usage, render response time.
Client side: Discrepancy of application behavior on different platforms and devices (considering different screens, resolutions, configurations, etc.), loading time spent, device's resources usage (memory, CPU consumption, battery, etc.).
How to do performance testing
A few activities should be considered in performance testing:
Performance test types
Understanding the different test types and when to apply them reduces risks and minimizes costs. The performance test types are listed below:
Performance test: The main purpose is to determine speed, scalability and stability of the application.
Load test: Consists of observing the application's behavior under peak load conditions. The load test facilitates measuring response times, throughput rates and resources usage and identifying whether the application's breaking point occurs below the peak load condition.
Stress test: Enables observation of the application's behavior when it is pushed beyond normal or peak load conditions; the main purpose of this test is to identify bugs that can be reproduced only under high load conditions.