October 24, 2018
Performance testing is essential to understand the stability of an application under pressure. It is also done to validate or verify quality attributes of the...
Performance testing is essential to understand the stability of an application under pressure. It is also done to validate or verify quality attributes of the system like responsiveness, speed, scalability, and stability under various loads.
The system is tested under heavy load and the response time is recorded under varying work load. The main goal of performance testing is not to find bugs alone, but also to eliminate the performance bottlenecks.
Given below are the seven steps that are performed during performance testing:
- First a proper requirement study is done, followed by analyzing test goals and objectives. Also, the testing scope along with a test initiation checklist is determined. Identifying the logical and physical production architecture for performance testing, identifying the software, hardware, and network configurations required to initiate the performance testing form an integral part of this step. Both the test and the production environments, while identifying the testing environment, are compared.
- The desired performance characteristics of the application like response time, throughput, and resource utilization must be identified.
- Some of the other key factors that need to be identified include key usage scenarios, determining appropriate variability across users, identifying and generating test data, and specifying the metrics to be collected. Finally, these items provide the foundation for workloads and workload profiles.
- Before the execution of the test, the conceptual strategy, available tools, and the designed tests must be prepared. Also, the test environment must be configured. This includes preparing the test environment, tools and resources, necessary to implement each strategy as features and components are made available for the test.
- A performance test needs to be created according to the test planning and design.
- Executing the test comes next where the tests are run and monitored. Validating the tests, test data, and collecting the results are the next steps.
- Then the results are consolidated and data is shared. The data must be analysed both individually and as a cross-functional team. The remaining tests must be reprioritized and re-executed. When all the metric values are within limits and accepted and none of them have violated the thresholds, the test in that scenario on that configuration is over. It is time to collect the desired information.
Performance test reports are presented in two different formats. One is a basic summary that highlights only what the stakeholders should know. And the other one is a detailed report for archival and comparison with regression runs.
Performance Testing is an important part of an application development process. It should not be an afterthought ideally, but part of the entire process. It should be viewed as an iterative process of development, testing, adjusting or tuning, and re-testing.
The steps that have been described above are simply guidelines and there can be exceptions too. Professional testers have the skills to overcome any challenge in an organized manner. They would also be able to handle complex testing scenarios that require time and unique skill sets.
For instance, they can easily understand whether the results obtained from a performance test are accurate or not. To eliminate all possibilities of a faulty outcome, some of the testers opt for an iterative performance testing strategy.
Iterative Performance test executed
The performance test deliverable, ideally is an iterative process where the tests are done repeatedly. With each test iteration, the performance test solutions are refined and expanded. This means that improvements to the performance test execution are made. This might also include adding test scripts, based on application enhancements and an increased number of virtual users to the overall load. These attributes are analyzed and reviewed during the process.
The above is possible only when the test process is tuned to a suitable environment setup that is the realistic copy of the production. It is to be noted that performance tuning is an iterative process with the following steps:
- Perform load test
- Gather and analyze test result data
- Compare with previous test result data, if it is not the first iteration
- Analyze impact of changes, if it is not the first iteration
- Check if the results meet the performance requirements
- Also keep a tab on the improvements
- Identify the bottlenecks
- Investigate and isolate the problem
- Perform remedial action to eliminate bottleneck
It is important to understand when to stop the tuning process. Testers should start with a baseline of results that can be compared with the subsequent changes in the process. Once enough improvement is visible, it is best to stop the tuning process.