Performance and Load Testing

All kinds of software applications must go through many different types of tests before being declared done and ready to go live. Most of these tests are considered mandatory. This post is about performance testing – a whole “family” of “Non-Functional” testing methods and types, that are widely NOT considered mandatory. The term Non-Functional is used as these tests are not determined to find functional bugs in the system. Rather, they are testing the behavior of the system under realistic conditions and hardware limitations.

In order to ensure that the system will not break down if suddenly a big number of users are interested in visiting it, it is essential to know how much load the system can take. For example: How many users could log in, buy and bid with ease and confidence simultaneously?

Arguably the most important thing about any performance testing is doing it right and with a good understanding of what exactly is tested and how it has to behave. The performance testing has to be realistic. If it’s not done properly and with the proper tools, there is a big possibility for performance false-negative or performance false-positive.

Even though performance testing has its own definition, it also is used for describing a category containing several subcategories.

Load testing

Generating a consistent load of virtual users. The goal of that testing is to find out how much load the system can take while still performing according to the requirements.

Stress testing

A steadily increasing load of virtual users is generated until the system brakes down. The goal is to evaluate the behavior of a system at and beyond the limits of its anticipated workload.

Endurance testing

This type of testing is very similar to load testing. So similar that they are widely referred as synonyms. The difference is in the runtime of the individual tests. In the load testing method one hour is a normal runtime for an individual test, while in the endurance test type an individual test can have a 48-hours runtime.

Soak testing

A type of performance testing, where the software is subjected to load over a significant duration of time. Soak testing may go on for a few days or even for a few weeks. Soak testing is a type of testing that is conducted to find errors that result in the degeneration of the software performance with continued usage.

Spike testing

Conducting a short burst of a very high load. The goal is to see how the system behaves and how the system recovers after a heavy load.

Volume testing

For this testing method the database is filled with data (according to the requirements) and the performance of the system is measured.

Due to its complexity and high system requirements, the rational solution for Performance testing in some cases could be to be purchased as a service rather than investing in human resources, hardware and software inhouse.

As we all know, in the software industry there is a free and FOSS alternative for nearly everything. Of course this comes with complications and limitations (Lack of support, interface complications, need for highly trained specialists and engineers, etc.)

Here are the most popular solutions:

1. On-Premises Paid Licence-Tools:

Pros:

› Customer Support;

› Tests can be run on any system (Not only one);

› Tests can be run when needed without extra investment;

Cons:

› Paid Licence;

› Investment in human resources;

› Investment in hardware, software and premises;

2. On-Premises Free Licence-Tools:

Pros:

› Free licence;

› Tests can be run on any system (Not only one);

› Tests can be run when needed without extra investment;

Cons:

› Not guaranteed support;

› Investment in human resources;

› Investment in hardware, software and premises;

3. Software as a Service (SaaS):

Pros:

› No need of investment in human resources;

› No need of investment in hardware, software and premises;

› Support by highly trained engineers;

Cons:

› Additional testing is paid;

Flat Rock is specialized in development and testing of bespoke software both manually and automated. Contact usto learn how to optimize your product or in case you need a hand in verifying software quality.