Performance testing is super set of Load testing, Stress testing, Capacity testing, Volume testing, Endurance testing, Spike testing, Scalability testing, Reliability testing [Picture:1]. In real life customer often confused between load test, stress test and performance test. In my last project customer asking for Performance testing but they want to know only "How many user that application can handle within short period". They just want to know maximum successful number of user and what's error occurred when crossed that maximum point? So client want to know about Load testing and Stress testing result.
Load test: is subset of performance testing. It is done by constantly increasing the load on the application under test till the time it reaches the threshold limit. The main goal of load testing is to identify the upper limit of the system in terms of database, hardware and network etc. Load Testing = Large amount of users
For example: 1st I give 90 user at first in Jemeter then check is there any error or not, if error occur then give 89, 88... and so on. When I give 83 user no error occurred. So the upper limit is 83 users.
Stress test: Under stress testing, various activities to overload the existing resources with excess jobs are carried out in an attempt to break the system down. Negative testing, which includes removal of the components from the system is also done as a part of stress testing. The purpose behind stress testing is to ascertain the failure of system and to monitor how the system recovers back gracefully. The goal of the stress testing is to analyse post-crash reports to define the behavior of application after failure. The biggest issue is to ensure that the system does not compromise with the security of sensitive data after the failure. In a successful stress testing, the system will come back to normality along with all its components, after even the most terrible break down.
For example: In my project from Load testing I know that 83 user is the maximum load. When I gave 84 user application failed to do some transaction. From Jmeter error list I found out what type error occurred and why? When I monitor error I found out server is over loaded when I gave 84 user at a time but this error not affect application.
Capacity testing: In short, capacity testing is about figuring out what the capacity of the system under test is. Typically, how many transactions per minute or how many simultaneous users a system can bear without crashing. Load testing and Stress testing two types of capacity testing.
Volume testing: Volume testing refers to testing a software application with a certain amount of data. if you want to volume test your application with a specific database size, you will expand your database to that size and then test the application's performance on it. Another example could be when there is a requirement for your application to interact with an interface file (could be any file such as .dat, .xml); this interaction could be reading and/or writing on to/from the file. You will create a sample file of the size you want and then test the application's functionality with that file in order to test the performance.
Examples of volume testing:
- testing a word processor by editing a very large document
- testing a printer by sending it a very large job
- testing a mail server with thousands of users mailboxes
- a specific case of volume testing is zero-volume testing, where the system is fed empty tasks
Endurance Testing/Soak testing: Checks for memory leaks or other problems that may occur with prolonged execution. it is also called soak testing. it is testing the application under heavy volumes of data for a prolonged period of time.From this term "Endurance Testing" the simple idea you can get by finding the meaning of word "Endurance".This is basically a fitness testing. How application behave in extreme/worst conditions. This is generally related to load testing of application. This type of testing is very important in time critical applications e.g flight control system.
For example: In my project I gave 40 user and ramp up period is 5 and Loop count is forever. Then monitoring the whole day report which was generated by Jemeter.
Spike testing: is a type of load test. The object of this type of performance test is to verify a system's stability during bursts of concurrent user and or system activity to varying degrees of load over varying time periods. This is one kind of load testing.
Spike testing: is a type of load test. The object of this type of performance test is to verify a system's stability during bursts of concurrent user and or system activity to varying degrees of load over varying time periods. This is one kind of load testing.
Scalability testing: Easy to increase the performance of the software if the application demands it. For example, a database application that gives good response time for 10 users should be scalable for 100 users if required.
Reliablity Testing: software Reliability is the probability that software will work properly in specified environment and for given time.
Probability = Number of cases when we find failure / Total number of cases under consideration
Using this formula, failure probability is calculated by testing a sample of all available input states. The set of all possible input states is called as input space. To find reliability of software, we need to find output space from given input space and software.
Hello,
ReplyDeleteThe Article on Performance Testing and its subset give detailed information about it.. Thanks for Sharing the information about the Performance Testing and its subset . For More information check the detail on the Performance Testing here Software Testing Services