Performance testing is done to assess the efficiency of components of a definite system in a particular situation; it is the process of estimating the speed or effectiveness of a computer or network, or software program or a device. This term comprises a lot of notions, among which are: load testing, stress testing, capacity testing, volume testing, endurance testing, spike testing, scalability testing, reliability testing and so on. Usually this kind of testing doesn’t fail.
The aim of performance testing is to eliminate bottlenecks and set up a baseline of the application for concurrency/throughput, server response time, latency, render response time, etc. That is to say, it’s a technical and formal evaluation for such characteristics as responsiveness, speed, scalability and stability.
Load testing is a part of performance testing. It is conducted via continual increase of the load on the tested application until the time it reaches the limit point. The primary aim of load testing is to determine the upper limit of the system in terms of database, hardware, network and others. The mutual goal is to set the SLAs for the application. For example, run a lot of applications one after the other all at once, and see the performance of a computer.
Endurance test is a part of load testing and is used to define such characteristics as average time between failure and average time to failure.
- Load testing helps to conclude the following:
- Peak production load
- Adequacy of H/W environment
- Load balancing requirements
- The amount of users applications which can manage optimal performance results
- The amount of users hardware which can manage optimal performance results
Stress testing is a form of testing that used for determining the application behavior beyond normal or peak load conditions, that is to say, testing application’s functionality under high loads. Usually stress testing checks synchronization issues, memory leaks, race conditions, etc. There is another name for this kind of testing – fatigue testing. Now and then it is problematic to set up a controlled environment before running the test. For example, banking application can take a maximum users load of 20 000 simultaneously. If you rise the load to 21 000 and in addition some transactions are performed like depositing or withdrawing, then, as soon as the transaction is done, bank application server database will synchronize with ATM database server. So, does the synchronization happen well when the user load comprises 21 000? The same will happen with the user load of 22 000.
Spike test is a part of stress testing and is done to test an application which is constantly having big loads and increase beyond production operations for short duration.
- Stress testing helps to define:
- Errors in slowness and at peak of user loads
- Any security loop holes with over loads
- The reaction of a hardware to overloading
- Data corruption issues at overloads
To request a quote for software testing services visit BugHuntress QA Lab website.