Saturday, March 18, 2017

What is performace testing

What is performace testing





What is Performance Testing?
The process of testing to determine the performance of software product

Importance of Performance Testing:
-Application performance has a major impact on the overall quality and popularity, especially in cases where organizations are dependent on IT for major business activities.
-Clients have a clear expectation when it comes to quality and have become more demanding.
-Every client looks for a reliable and fast application; performance testing ensures that all applications are performing optimally and are available and speedy.
-The need for eliminating bottlenecks has become greater in this competitive business world. Performance testing ensures that bottlenecks are identified and eliminated before the application goes into the production stage.
-Breach in service level agreement conditions can be prevented through performance testing of applications.

Types of Performance Testing:
- Performance Testing: 
It is to determine or validate speed, scalability, and stability of the System 
Performance tests are technical investigations to validate the response, speed, scalability, and/or stability characteristics of the product under test. 
- Load Testing: 
It verifies application behavior under normal and peak load conditions. 
Load testing is conducted to verify that our application can meet our desired performance objectives; these performance objectives are often specified in a service level agreement (SLA). 
Load tests enable us to measure response times, throughput rates, and resource-utilization levels, and to identify our application;s breaking point, assuming that the breaking point occurs below the peak load condition. 
-         Endurance Testing: 
It is a subset of Load testing, used to validate a system’s performance under continues load.
Endurance testing calculates Mean Time Between Failure (MTBF), Mean Time To Failure (MTTF), and similar metrics. 
-          Stress Testing: 
It validates an application;s behavior when it is pushed beyond normal or peak load conditions. 
The goal of stress testing is to reveal application bugs that surface only under high load conditions. These bugs can include such things as synchronization issues, race conditions, and memory leaks. Stress testing enables you to identify your application’s weak points, and shows how the application behaves under extreme load conditions. 

- Spike Testing:
It is a subset of Stress testing, used to validate a system’s performance under sudden changes (Load increments and decrements)   
- Volume Testing: 
Testing how the system handles large amount of data
Volume testing is done against the efficiency of the application. Huge amount of data is processed through the application (which is being tested) in order to check the extreme limitations of the system.

Advantages of Performance Testing:
* It helps to detect hidden bottlenecks or performance issues
* Helps to predict how the system will function in the real world.
* Measures the end user response time for every transaction and user load level
* Increases customer satisfaction and business volume
* Avoids project failure under large user loads
* It validates the System;s behavior under high volume of data.
* It validates the system&;s behavior under peak load.
* It validates how the Application will handle sudden increments and decrements of Load (Load in terms of operations as well as users)

        Disadvantages:
* Performance Tests are just simulation but not realistic
* It can;t estimate real world issues.
* Test Tool is mandatory to conduct performance testing (Manual Testing is impractical for this type of testing)
* It expensive to set-up test environment and accommodate Test Tool for Performance Testing
* Real world issues are dynamic, so handling all types of performance issues is difficult.

Available link for download