Early Performance Testing is an approach within the software development life cycle to detect the performance issues at the initial phase. Early Performance Testing is an optional task and applicable only to the large scope of software development where an application or software system is developed in multiple phases.
When to Start
The Early Performance Testing approach helps to start with performance testing in the development phase even when a single module of any software system is ready. The best time to start the EPT is the software development phase when the application is being developed. The EPT test result, analysis and recommendation of one phase are implemented in the second phase which is a kind of regression EPT for the first module in the second phase and this cycle continues until the development of the full application is completed.
As stated above EPT does not add much value for a small-scale application or an application with single business functionality. You can get EPT’s actual benefit for larger applications where the whole software system is divided and developed in modules or phases. You can take the most out of the Early Performance Testing approach by combining the agile methodology along with. Agile methodology helps to exploit the EPT in the best possible way by setting short-term modular goals, solutions and tracking. It helps in achieving performance testing objectives and execution at the lowest possible level i.e. interface/component level.
You can follow the below approach to conduct a successful early performance test:
- First, divide the application in the business module as per the completion of the individual development phase
- Once the development of the first phase is over then conduct the performance test (EPT) on the completed functionality/module.
- Conduct the performance test with load and soak test NFRs. Load Test EPT helps to determine whether the particular module is able to handle the peak load or not. Similarly, Soak Test EPT helps to identify memory leakage.
- Gather the test result and identify the bottleneck (if any).
- In case of any NFR breach then it should be highlighted to the development team and the code should be gone through under the performance improvement phase.
- If the next phase is planned then re-test the same module and validate the performance along with the other modules.
- Repeat this EPT cycle for each software development phase and validate the performance of the module.
Performance Metrics for EPT
During EPT, you need to pay attention only to the core metrics which are
- Response Time
- Request Rate (Transaction Rate)
- User Load
- Volume (in case of batch test)
Server-side statistics can be parked during EPT because you are testing the individual module; not the fully integrated system. Since multiple functionality and code modules reside on a single server by sharing the resources judging the server performance of a single module is not worth it. But one important point is that server-side stats can be parked but can not be ignored in case of the worst performance and full utilization of the server resources by a single module.
Benefits of Early Performance Testing
- Fasten the actual performance testing process
- Detection of less number of performance bottlenecks during the actual performance testing
- Cost Optimization & Tuning
- Ensuring better performance of the code from the early stage
- Early involvement of a Performance Tester helps to make a good understanding of the application from a performance testing perspective
- Less burden at the time of project delivery
- Developer gets enough time to resolve the performance issues identified during the early performance testing
Do’s & Don’ts
- Divide the EPT scope in a proper way which should cover a complete business functionality; not a very small module or code.
- Consider the EPT effort in the performance testing estimation
- Manage the EPT defects and solutions properly for quick resolution of the same defects identified during the actual test.
- Always perform EPT on third-party software before implementation
- Do use EPT scripts (if applicable) in the actual testing to save time and effort
- Do not perform EPT regressively