What is Performance Test Planning?
Performance Test Planning is a process to define a road map for conducting successful performance testing. This is one of the important phases of the Performance Test Life Cycle where a performance tester prepares an approach to test a system or an application. Such an approach is based on the outcome of risk assessment and non-functional requirement gathering phases. The final approach with all the supportive information is noted down in a document called Performance Test Plan.
Purpose of Performance Test Plan:
Well-Planned test execution with all the available information and aligned support helps to conduct smooth performance testing and provides benefits to meet the project timelines. Hence it is a good practice to prepare a detailed performance test plan comprises of practical test goals, accurate test strategy, expected result, known risks, identified issues, assumptions and aligned support team details etc.
The Performance Test Manager or Performance Test Lead has a responsibility to prepare a practical performance test plan with the help of available information which he has collected during the Risk Assessment and NFR Gathering phase. Another responsibility of the Performance Test Manager/Lead is to walk through the test plan to the team members and provide detailed knowledge on performance testing scope, script protocol, execution cycle etc.
In this phase, Performance Test Manager/Lead jots down the following details in the performance test plan document:
- Describe the non-functional requirement and scope
- Map the non-functional requirements with non-functional tests
- Develop the strategy for test execution
- Define the entry and exit criteria of the test
- Decide the number of execution cycles as per project timelines
- Collect the information about environment scaling
- Test data creation/preparation plan
- Highlight RAID (Risk, Assumption, Issue and Dependency)
- Performance Testing Timelines
Some of the information is easily available from the previous phases. Other information like environment details, test data etc. may require some more meetings or calls or email communications. If the performance test environment is scaled down then NFR must be updated according to the scale of the percentage of the environment and there must be a provision for extrapolating the results. In addition to this, the risks and assumptions associated with scale-down testing and extrapolation must be properly documented.
Another important point is to highlight the dependency along with the point of contact (dependency owner). Example: The Performance test environment should be ready before the performance test start date (Owner: ABC). Once the performance test plan is finalised then share it with the project team and get the key stakeholder’s approval on the same. The approved performance test plan should be explained by Performance Test Manager/Lead to the team member so that they can understand the testing strategy and develop the test script and scenario according to the approach documented in the plan.
The Performance Test Plan is the key deliverable of this phase which comprises the detailed performance testing approach to carry out the test execution and find out the performance bottlenecks.
Performance Test Plan Document Template:
Download the template of the Performance Test Plan Document.
It’s time to call PerfMate to understand the performance test planning phase practically. PerfMate prepares the performance test plan and identifies the test scenarios as per the in-scope components (mentioned in the approved Risk Assessment document). Based on the non-functional requirement (collected during NFR Gathering Phase), PerfMate mapped the following tests with defined NFRs:
| NFT=> |
|Load Test||Stress Test||Soak Test||Spike Test|
Following are the scripts which need to be created during the test design phase:
|Role||Script ID||Script Name||Purpose||Additional Details|
|Admin||Script01||adm_seller_request||To approve/reject a new seller request||The script should have both approve and reject request scenarios. 80% of total requests will be approved and 20% will be rejected.|
|Admin||Script02||adm_product_request||To approve/reject a new product request||The script should have both approve and reject request scenarios. 90% of total requests will be approved and 10% will be rejected.|
|Seller||Script03||slr_add_product||To add a new product|
|Seller||Script04||slr_delete_product||To delete the existing product||10% of seller transactions|
|Buyer||Script05||byr_buy_product||To buy a product|
|Buyer||Script06||byr_cancel_order||To cancel the ordered product||4% of buyers cancel the product|
|Call Center||Script07||cce_register_complain||To register buyer/seller complain|
As stated above, a typical performance test plan contains all the basic information which are required during the test execution. Actually, a performance test plan is an agreement between a client and a performance testing team which is referred to at the time of the test report to confirm whether the results are as per the client’s expectation or not. The conclusion in the performance test report is made based on the information written in the test plan.
PerfMate also includes the RAID (Risk, Assumption, Issue, and Dependency) along with the impaction and owner of the respective RAID. RAIDs are very important sections of the test plan which save the performance testing team in the critical time like when the project starts bombarding and blaming performance testing in case of any delay in the execution; provided that RAID should be clearly written and the correct owner and date are provided along with his/her signature.
PerfMate completes the performance test plan and shares it with the project team for approval. In the meantime, he takes a session with his team and elaborates on what would be the approach of performance testing for this project (PerfProject)? He also explains the required testing and monitoring tools, testing scenarios and timelines. His team is excited after getting a new project and enthuse to grab new learning!