Blog
28.03.2022
Software Testing: Load Testing


In the blog post Software Testing: Types of Tests we defined a spectrum of various types of
tests. However, outside of that spectrum exist also other types of tests. One
such type of tests is load tests. In this blog post we discuss what load testing
is, when to do it and what metrics to get out from it.
Load testing is by definition testing how our product works under load. We can
test scenarios such as rate limiting during high usage, stability or recovery
during overload or just correct behavior during concurrent usage. Common for all
types of load testing is that we need to have multiple users or requests running
simultaneously or in quick succession. As such, load testing is most commonly
used for products with multiple simultaneous users such as servers or network
equipment. However, it is also applicable in scenarios where a single user can
make requests in quick succession such as with an operating system or a desktop
program.
Scenarios to test with load testing (non-exhaustive list):
- Rate-limiting and throttling
- Stability and recovery during overload
- Concurrent usage
Typically, load testing is done to the product as a whole. Load testing can
reveal bugs and crashes such as memory leaks, memory corruption, problems with
concurrency and surprises in resource starvation. In general, load testing is
complementing other types of tests and helping find bugs that happen during
unexpected usage scenarios.
Load testing can reveal (non-exhaustive list):
- Memory leaks
- Memory corruption
- Race conditions
- Resource starvation
The major downside with load testing is that the tests are typically not well
reproducible. You might have a crash during one run, but not get it during the
following runs. Load testing is time-dependent and controlling timing precisely
is hard. Also, using extensive logging or tracing might not be feasible during
load testing, and as such debugging errors found in load testing can be costly
compared to debugging errors found in other types of tests.
Summary
In this blog post we discussed load testing. Load testing is complementing other
types of tests and can help find bugs that are unexpected in nature. However,
debugging bugs found in load testing can be costly compared to the alternatives.
This article is part of Omoroi’s blog series on Software Testing. You can reach us at blog@omoroi.fi or discuss in this LinkedIn thread.