A software testing process usually includes many stages, methods and can have different goals. Among them performance testing is one the major components. In general, software performance testing is meant to identify how the system performs under some workload and measure its quality attributes such as speed, scalability, reliability and others. Performance testing is necessary to carry out before the system goes to market, otherwise you might unexpectedly face some cases when the system runs slowly.
There are plenty of useful tools for measuring the performance of web sites, web applications or any other objects. The list of the most popular performance testing tools is illustrated on the infographics below.
Performance testing includes several types of tests that aim to analyze different aspects.
- Smoke testing
This is a number of base tests that show if the system actually works or not. Minimal smoke tests can indicate whether all of the components function as expected, in a correct way.
- Load Testing
Load tests target to find out the normal performance metrics under the expected load. They are carried out, for instance, by setting some expected number of users making some transactions. Load testing refers to a non-functional type and reveals the response time for all the main procedures. When making changes in the code, load test can help to measure whether this improved the system performance or hurt it.
- Stress Testing
Stress tests aim to figure out the behavior of the system under the extreme load and identify the high end of the system’s capacity. Constantly increasing the load, you will see the limits of good performance under a heavy load. When you reach the threshold you can see what components of the system start lagging and fail first. In order to increase the system’s robustness beyond normal conditions you can make these components more efficient.
- Soak Testing
Soak tests (they are also called endurance tests) focus on long-time period. They determine whether the system can work under a continuous load. During soak tests it is important to pay attention to such an issue as the performance degradation which means that the response time after a long period would be worse than in the beginning.
- Spike testing
Spike tests are carried out to analyze the system behavior in conditions of sudden load increase. The goal is to figure out if such short-time huge changes can hurt the system or will be successfully handled.
- Component Testing
Component tests aim to check the performance of any separate component of the system such as a search function, a picture upload, online chat etc.
- Configuration testing
This is an essential test for the dynamic system. Changes made to the system configuration always need to be tested for understanding the effect they cause to the performance and behavior.
Accomplishing all types of tests does not automatically mean than your project is perfectly tested. A performance tester should always remember that testing is rather a continuous and repeating process, than a one-time event. Therefore, you should include testing into every stage of development.