Every application is prone to failures when there is a system breakdown. The causes may vary, such as inability to process a large number of requests and many more. Performance is an aspect that is directly associated with the success of a business.
Performance Testing is a technique to determine effectiveness of network, software program or device, to test how fast a system is responding to a triggered action, and record the response time. Along with delivering the appropriate functionalities, a system must be able to do faster processing. This is basically a part of non-functional testing which does not take into account any portion of the code section. It is concerned with input and its corresponding output.
Performance testing aims at achieving the following goals.
Check if the desired performance criteria is met.
Identify limitations in performance, if any
Compare performance characteristics
Types of Performance Testing :
Load Testing - The system is checked under various load conditions. Load/amount of data to be processed, is measured on the database, application servers.
Stress Testing -This testing is to analyse the system's highest capacity to sustain a stressful condition. It checks how the system responds in case the load exceeds the maximum limit.
Endurance Testing -System is checked for the length of time it is able to endure the load situation or how long it can sustain it.
Spike Testing -It is to test the system's response to sudden burst of huge amount of load.
Volume Testing -This testing deals with database testing. That is, the system's performance is analysed under large volumes of data.
Scalability Testing -It verifies how efficiently the system is able to add capacity in case of an increase in load.
Performance Issues :
Long load time -It is the time taken by the application to start, initially. The load time should be only a few seconds, for an efficient performance.
Poor response time -This is the total time taken by an application to process a user request.
Poor scalability -Scalability issue arises in case an application is not able to scale up to manage an increase in the number of users.
Bottlenecking -Bottleneck is an obstacle in the performance due to some factors that can decrease the amount of throughput. Few of those factors may be error in code or some hardware issues.
Performance Test Process :
Identify test environment -Prior beginning with the performance testing process, one must be aware of the hardware and software requirements. Gather the details of the network configurations, testing tools to be used. This shall help testers to create more efficient test cases and also enable testers to understand the challenges that may arise during performance testing process.
Identify performance test criteria -Testers set a benchmark for performance test to be performed. A specific criteria for test should be defined, the basis of which lies in the requirement specification. Sometimes the goals must be set a bit off the track, that is, devise a test strategy beyond the outlined specification, so that it is possible for the testers to perform a litmus test of uncertain/unforeseen possibilities.
Plan and design performance tests -Identify various scenarios to plan the test cases. Plan the tests taking into account the end users and their requirements.
Configuring test environment -This is simply arranging the tools and the necessary resources to begin with performance testing.
Implement test design - Create performance according to the planned test design.
Run the tests - Execute the tests and monitor the test results.
Analyse, tune and retest -Analyse the results obtained, tune the performance test results and re-execute the complete test again. Repeat the action until all possible scenarios are measured.
Performance is a crucial aspect for an application. To be able to set a benchmark as a successful entity, the developers and testers must optimize the application's performance as much as possible. Test design should be robust enough to be able to fullfill the desired criteria.