Finally, it’s Friday! You are going to have a nice evening with your best buddies at your place. Pizza, beer, and video games—what else could you possibly need after a pretty tough work week? When you are about to decide who’s gonna have a first Mortal Kombat fight, a sudden thought hits your mind: a new episode of your favorite TV show is out today!
Cheerful and excited, you grab a beer and rush towards the TV with an image forming in your head: here you are, sinking into a comfortable sofa, watching a long-awaited episode. No hurrying, no traffic jams, no phone calls, no paperwork. Just you and your buddies, and pizza, and…
Ten minutes have passed. You’re reloading a video streaming service website over and over but the TV screen keeps showing “Sorry, the website is temporarily unavailable. Try again later.” Is something wrong with the internet connection? Or your streaming service?
“No wonder, everyone must be watching this now, the website is overloaded,” notes one of your friends. And you finally realize what’s wrong — the video streaming service owners might have simply cut corners on load testing.
Downtime has proved to be one of the major reasons why businesses lose clients, their reputation, and money. In 2017, Information Technology Intelligence Consulting conducted research among more than 750 organizations to find out the average cost of a server outage. The findings suggest that almost a quarter of the reported server outages cost between $301K and $400K per hour. But the real losses may even go beyond these figures as they include the clients who’ll never go back and the purchases they’ll never make.
One of the reasons why servers go down and disrupt the normal operation of a business is their inability to handle massive traffic increases. To identify the maximum amount of load that the server can cope with and still function properly, load testing is performed.
Load testing comes as one of the kinds of performance testing—a type of testing that checks how fast an application reacts to user actions under a load of various intensity. It also includes some other types of testing, among them are:
For example, let’s take a look at loan calculators. Usually, they require a relatively small input: the loan type, the total loan amount, the interest rate, and loan duration.
At the same time, as a result, a user gets a full repayment schedule with the calculated principal and interest for each month. Apparently, these heavy calculations cause a significant load on the server.
Primarily, load testing aims to define how much load an application can handle without crashing or slowing down. The app may work fine during functional testing with even 100 QA engineers using it simultaneously. However, it can entirely or partially crash right after release when thousands of people start using it at the same time. That’s why the environment where load tests take place imitates the production environment to see if the product is able to handle real-life situations.
Other common reasons to introduce load testing into the development process include:
You lose clients. When the app slows down and becomes inefficient, customer loyalty suffers first. Clients will hardly wait until the product is back on track again—they’ll simply switch to the competitors.
You lose money. Fixing the problem itself will give you a lot of unplanned expenses. Also add here the money you’ll never earn due to lost clients.
You lose your reputation. Failures and downtimes can contribute to the impression that the product is not reliable. Apps that work with sensitive data are likely to suffer really dreadful after-effects in this case, so banking and medical products are at the biggest risk.
Typically, load tests start after functional tests are over and all bugs are fixed, which means the code works properly. Before embarking on load testing, it’s a good idea to define performance and stability requirements first. They may include the maximum response time, the number of requests the app should be able to process under the expected load, or other relevant metrics.
Load testing is a great tool to put your product in a real-life situation in order to identify its performance limits and see if these limits can be pushed further away. If you’re looking for a way to find out if your app lives up to the performance rates you’ve set and is able to withstand all the coming peak load situations, load testing is the right choice to help you along the way.
Get weekly updates on the newest design stories, case studies and tips right in your mailbox.