As we know performance testing is done to check the response time of an application under load. At times the number of requests pile up or become too high resulting in system crashing. Therefore, performance testing plays a crucial role in monitoring an application to assure that it meets at least the expected load requirements.
Objective of Performance Testing :
To detect the response speed
To identify the maximum number of user's load an application can handle
To determine if the application remains stable under different kinds of loads
Generally, manual performance testing can be done by checking the number of open connections - active sessions, database connections, amount of CPU time, amount of memory being used etc.
This is the amount of performance checking that could be done by a human. However, at some point of time one may need assistance of automation tools to analyse the performance of a given application.
When performing web testing, one may need automation tool because the entire process of manual testing cannot be conducted manually. We have a web testing tool called 'WAPT - Web Application Load, Stress and Performance Testing'.
WAPT tool allows performance testing by creating heavy load from multiple workstations. When we run the test, we get a complete report of our website application.
Common Performance Issues :
Long Load time -It is the time taken by the application to start at the initial phase. Load time should be kept at minimum, say, a few seconds.
Poor Response Time -It is the time taken by the application to process an input data and generate an output. The response time should ideally be minimum.
Poor Scalability -Scalability is to check whether the application is able to handle the minimum number of users. An application must ideally be able to handle multiple users.
Bottlenecking -The term refers to an 'obstruction'. A bottleneck may arise due to any hardware issues, delay in throughput, or any coding errors. Some of the very common types of bottlenecks are - CPU utilization, memory utilization, network utilization, disk usage etc.
Performance testing also goes through various stages. Following is a break up of the sequence of steps :
Identify test environment - Before beginning with the testing process it is important to understand in detail the platform to be used for testing, configurations in terms of hardware, software and networking. A careful and well thought out strategy helps in the long run.
Identify performance acceptance criteria - This stage is to identify the constraints in throughput, response time, resource allocation etc. It is the responsibility of the testers to set a criteria for performance testing as these requirements aren't explicitly mentioned in the specifications but are very crucial in building a robust system.
Plan and design performance test - In any type of testing, drafting a plan of conducting a test is important. That is a well planned test case must be prepared keeping in account all possible scenarios.
Configure the test environment - The test environment/platform must be well configured in order to avoid any discrepancies later on.
Implement test design - Create test cases keeping the test design in mind.
Run the test - This is the time to execute and monitor the test.
Analyse, tune and retest - Till now whatever have been tested, gather the data, analyse error reports and try to find out issues and resolve it. Rerun and retest.
Performance test tools :
HP Load Runner -This tool is quite popular in the market as it allows a real life scenario where all the users can be simulated. The tool then monitors the performance under such circumstance.
HTTP Load -It is aimed at testing the web server requests. Multiple http requests are generated simultaneously, and the application is observed to see how it is capable of handling the load.
Proxy Sniffer -It is a cloud based tool capable of handling multiple users . A load testing tool for web application servers.
Testing is important to find bugs in the system being developed. Performance has to be up to the standards to be a success among the end users. If during their actual use, a system stops working that really becomes a big performance blunder.
Hence the components affecting an application or web - cpu, memory optimization, throughput, all such aspects form a part of performance testing process.