Over the last decade, the importance of load testing has skyrocketed.
What was once a simple pre-deployment exercise to ensure a web application could handle the load of multiple users has become an intrinsic part of software development — and software improvement.
Load testing has been around for years. But the topic is still relevant, still searched for, and sadly, still not completely conquered. As websites and web applications become modern and complex, load testing becomes challenging.
We Are Seeing Increasingly More Instances of Failed Load Testing
A sound performance testing plan is essential across all industries. From e-commerce to media to education to financial services, every industry is prone to performance challenges and the aftereffects of failed load testing.
In 2015, we saw multiple examples of bad load testing across industries. Last March thousands of students couldn’t login to a Florida state exam when the exam supplier American Institute of Research failed to load test the platform for multiple simultaneous logins.
In October, Fandango and many other ticketing websites failed when fans rushed to get tickets to the new Star Wars movie. During Super Bowl 2016, Beyonce’s website crashed as her fans overloaded the website after her tour announcement. Some called it ‘breaking the internet’ but we all know it was a standard case of failed load testing.
More recently, Canadian immigration website couldn’t withstand the surge in traffic when ‘move to Canada’ gained an unexpected interest and started trending.
Why don’t we load test?
If you take a close look, all the brands and entities mentioned above don’t seem to have a lack of understanding of consequences of a failed website; they also don’t seem to have lack of resources to take precautionary measures. Then why don’t we load test? There are multiple reasons behind it. Here are some reasons that we frequently hear on the field:
- It’s hard, we don’t have the skills
- We tried few tools, they require coding skills
- We don’t have expertise to analyze the results
- It takes too long, we don’t have the bandwidth
- We are already doing so many other tests; performance responsibility is fragmented among teams
- Not a part of the process — there is no performance department
- We don’t have specific target / KPIs setup
- There are no performance requirements
- We don’t have a test environment
- We don’t have the hardware to generate tests
- We don’t have the budget
Or sometimes organization do load tests, but fail due to lack of alignment of performance objectives and goals between various stakeholders. You need to involve a number of people in the testing effort: Developer, Network Engineer, DBA, and Business Owner – to name a few.
All of these individuals have a vested interest in making the application successful, and each will approach the problem from a different angle. Consider a typical scenario where the marketing team runs a campaign to increase website traffic to a particular area but doesn’t include or align the performance expectations with the web team. More often than not, such seemingly natural scenarios result in performance disasters.
So what can we do about it?
As said before, identify your performance objectives, decide which kind of performance test to conduct and use the right tools to help you execute it.