Performance testing is a complex of various tests, the purpose of which is to determine the stability, resource consumption, efficiency, and other quality attributes of the application in different usage scenarios and loads. Performance testing finds possible vulnerabilities and weaknesses in the system. It’s performed in order to prevent their detrimental effects on the program during operation. Performance testing falls into types:
Load testing is performed to make sure that the application works in accordance with the requirements under normal user load. It measures mainly the response time of the application to requests of various types.
Stability Testing examines the application’s performance during prolonged work in time, under the normal load.
The goal of this type of Stress Testing is to evaluate system performance at or below workload limits. Also, during testing, we evaluate the system’s performance when changing resources available to the system, such as processor time, memory, network channel width, etc.
Performance testing does not pursue one, but several goals, due to the fact that many types of testing are combined with other goals during its implementation or repeated several times during the testing cycle. It helps to detect a variety of issues with the memory build-up, poor optimization, server configurations, load balancer configurations if microservice architecture is present, hardware limitation issues, memory limitations, and many others. In a nutshell, the testing works are performed after the functional testing, before product launch and new product releases. It is also done to optimize the app, make its work smooth, reliable and trouble-free, as deceiving the expectations of a highly selective user can be very expensive for a business.