Don’t make the mistake of assuming too many similarities.
It is common knowledge that mobile applications don’t function in the same way as their web-based counterparts. The user experience is affected by a few other factors such as device and network capability. If you are building out a performance testing strategy for your mobile website or native mobile application, avoid migrating your existing test plans to a mobile environment, because it’s not that easy. There are extreme differences between performance testing of mobile and web applications, and you need a plan that gives those factors the attention they deserve.
Mobile and web performance testing are not similar to each other. Mobile apps require specialized testing strategies along three key vectors that don’t typically apply to traditional web-based apps. In this article, we will impart the best practices to build a suitable set of test plans. It is your responsibility to ensure your users get an excellent experience irrespective of the device — desktop or mobile.
The device is the key difference
Web servers are aware of the device an existing user has and will often send users different content — or send them a completely different mobile version of the site. Furthermore, responsive web applications are designed to adjust their look, feel and behavior based on the size of the screen being used.
This makes performance testing of your web or mobile application with different devices extremely important, because each device has the tendency to translate the content of the application differently — which could affect the performance in great ways.
It is essential to have a clear performance testing plan to understand how these iterations affect your application’s performance features. Your mobile performance testing plan needs to take into account different factors that include processing power, screen size, bandwidth capabilities, platform, parallel connections, and more.
Network — an important factor
Mobile devices in this generation generally access the server over networks that are slower than those used by desktop computers. Network conditions have a significant effect on the user experience, and the effect may be more or less pronounced depending on the application. Low bandwidth increases the time it takes to download a resource, which then results in higher page load times. If the customer is connected longer, front-end servers hold sockets longer, load balancers have more active TCP sessions, and application servers use more threads.
Mobile networks have limited bandwidth and high latency compared to Wi-Fi and broadband. Since the latency increases with any time added to each request and web pages are composed of many sub-requests, the time required to load a webpage on a mobile device greatly depends on the latency. In fact, latency can become a bigger bottleneck than performance due to physical limitations of networks. Even connections with very high bandwidth can’t get around latency issues. Limiting bandwidth and simulating latency and packet loss during a load test allows you to check that all of your users, including mobile users, will get the best user experience and acceptable response times while ensuring your servers won’t have problems under load.
High expectations are liable
According to a survey conducted by EffectiveUI, a majority of the 780 individuals surveyed will abandon a mobile app if the performance is slow or difficult or confusing to use. Similarly, if a web application is too slow, even by milliseconds (according to Google engineers), users will abandon your website.
In this fast-paced world, when you load test your application with user experience in mind, you have to take into account a new set of failure scenarios too. Reset the criteria of good and bad performance according to your users. Ask: Will your users bear any kind of delay on their device? Or will they switch applications? Take into account the responsiveness on the device. Is the content being downloaded and accessed quickly enough to keep users happy and interested? If yes, it is, then bingo! — you are heading in the right direction.
As an organization or as a tester, try and empathize with the end-user experience and design test scenarios accordingly. Remember the customer doesn’t really give second and third chances to an application if it doesn’t work — he instead leaves the application. This impacts the business and thus the reputation of the organization/application.
This article originally appeared in The Official 360Logica Blog at http://www.360logica.com/blog/2014/06/mobile-web-performance-testing.html
Atin Chak is a Senior Automation QA at 360Logica Testing Services. He has expertise in web application and desktop application testing with 10 years of experience.