Performance Tests:
Frequently we discuss performance testing without considering the specifics. Multiple types of performance tests can be performed on a system at a very high scale.
The most common types of performance tests are as follow
LATENCY TEST
- It is intended to compute the end to end transaction time.
- The latency of the system is an observable parameter to the management, which tells how long customers have to wait for a transaction to happen. Hence this is one of the important performance tests.
- Avg. value computation is not the right choice, latency is mostly computed in terms of P99.99, P99.9, P99, and P95.
THROUGHPUT TEST
- It defines how many concurrent transactions a system can handle.
- Latency and throughput tests are mostly interrelated.
- Max throughput of the system is measured until the system starts degrading.
LOAD TEST
- It represents a binary question — can the system handle a specific load?
- It is mostly conducted just before the business events e.g. launch in a new country, viral content, and social media events.
STRESS TEST
- It is intended to compute the breaking point of the system and how much spare headroom systems have.
ENDURANCE TEST
- To detect the anomalies in the system if the system runs for an extended duration.
- Many problems in the system are detected only if the system runs for a longer duration e.g. Slow memory leaks, cache population, and memory fragmentation issues.
- It is the most suggested test for the fast response system which cannot tolerate the long length of the stop the world event caused by the full GC.
CAPACITY PLANNING TEST
- To check if the system scales as per the expectations when additional resources are added to the system.
DEGRADATION TESTING
- To check the behavior of the system when it partially fails. It is also known as the partial failure test.
- It is usually done to validate the resiliency of the system. Chaos Monkey by Netflix is one such example to build a truly resilient system.
RULES TO SELECT TESTS
Golden rules that provide useful guidance over which performance test you should perform:
- Identify what you care about and figure out how to measure it.
- Optimize what matters, not what is easy to optimize.
- Play the big points first.
NON FUNCTIONAL REQUIREMENTS
Observables that are important to the management and system.
NFR’s are generally provided as follow by the management:
- Reduce the 95% percentile transaction time by 100ms
- Improve system so that 5x throughput on existing hardware is possible.
- Improve average response time by 30%
No comments:
Post a Comment