On April 1, 2016, Instagram users became frantic as the pages would not load. Earlier this year, an outage of Salesforce.com apparently cost the company a whopping US $20 million. Of course, these are examples of companies with rapid user growth and a mammoth number of users; But, they also had the technology infrastructure to handle massive traffic. In spite of this technological arsenal, these companies had to deal with crashes, thanks to unexpected spikes in traffic. Or was the crash only due to additional traffic or could there have been other reasons?
Often, on a regular day, there is probably no question about the performance of your app. But any unexpected spike in traffic, any unexpected combination of searches, or just an unproven combination of multiple actions by a sizable no. of users can possibly make your site behave erratically. And, if you haven’t planned for this use case, a crash may be inevitable.
This is true the world over. One of the largest retailers in the U.S., Target, found that its site was unable to keep up with traffic growth in 2015. Ironically, TechRepublic, a content platform that uncovers technology news, explained the finer nuances of Target’s website crash; the article went viral and, as luck would have it, TechRepublic crashed!
Okay, we could go on and on with these examples. But, the point we’re making here is a subtle, yet important; Even the world’s largest, most technologically advanced brands have to deal with site crashes, for two reasons – unexpected traffic and more importantly, unexpected combination of usage by these large number of users.
A robust performance testing process
You may well think, what have billion users got to do with your app or website? Your current site is expected to handle, say, 10,000 users. It may spike to a 2,000 more, or 5,000 at the most. If you got 20,000 users, you would be happy with that, but even that will take a while!
Our experience, with working on a slew of performance testing projects for our global clients, reveals that where performance is concerned, no size is too small. Performance testing, which includes an array of testing processes for load, stress and endurance, is a must:
- To recognise possible bottlenecks of your application
- To identify how many users can access your application in parallel without impacting performance
- To analyse your application’s behaviour under load
- To assess response times of your app or website
- To find out how updates affect your app’s behaviour
The Three S’s of Performance Testing
- Speed: Slow page load aggravates customers, increases dissatisfaction and erodes customer base. More over, slow page load and large user base, will never go hand-in-hand. Your app or website may generally be fast, but in rare occasions, page load speeds may be bad. You need to have a performance testing process to uncover this scenario
- Scalability: Performance testing ensures that your site is ready to handle more users than planned, and also indicates by how much more it can be increased. This can impact your marketing as well as technology infrastructure strategy. Is your server hosting strategy planned keeping all scenarios in mind? Is it in sync with your user acquisition strategy? Do you have a model to capture user behaviour of majority of users on the site? What does your analytical data reveal about user behaviour
- Stability: There is no doubt, any downtime can prove costly. With performance testing, you are preparing your app for not only user growth, but for seamless operations across the app or website for an exhaustive set of scenarios.
Our Approach at Indium
Performance Plus: At Indium, with our years of experience in performance and functional testing, we have fused performance engineering with testing, drilling down the test results to pinpoint the exact moment when glitches can happen. This helps developers quickly resolve the issue, without having to second guess the cause.
Mobile Plus: For performance testing of mobile environments, in addition to emulators, real devices on actual networks are used to get an accurate picture of the client side performance issues. It helps compare app performance based on type of device, bandwidth of network and battery usages. It is crucial to make app performance, agnostic to a mobile device.
Open Source Plus: Often, creating scripts may be a challenge in Open Source platforms, common used by testers. At Indium, we’ve created a process to tackle this challenge using J-Meter and other tools.
Communication Plus: Constant, timely and insightful communication with the clients periodically has been one of the reasons for Indium becoming a preferred testing partner for several leading vendors. This helps in capturing and reporting bugs along with potential risk areas, thus help the developers effect improvements quickly.
While tools provide Indium with data points, the experience and expertise enable the testing team to provide inference and insights that add value and enable the developers to address performance and functionality issues faster.
Domains Plus: Indium has experience in performance and functionality testing across domains including Fintech, media, gaming, retail, banking and financial services, telecom and enterprise tech – all industries with large user growth.
With the Internet becoming the pivot around which businesses deliver their products and services, customer expectations of service quality have also grown manifold. Any slackening can cost businesses heavily. Apart from natural growth and unexpected spikes, denial of service due to malicious malware attacks is just as real the risk businesses run, causing performance glitches.
Indium’s performance and functional testing practice help businesses prepare for the potential risks better to ensure smooth delivery of their services. Scalability, stability and robustness are becoming critical, as also speed of delivery. Integrate performance testing with development to catch bugs early and ensure smooth user experience with your app.
And needless to say, size (user numbers) does not matter. Even if you’re planning for 1,000 users, a robust performance testing process is crucial to deliver a seamless user experience.