In my last blog post, we discussed and addressed two important questions in Performance Testing. In this blog post, it is necessary to understand the phases in Performance Testing Life Cycle. Performance Testing Life Cycle is a subset of Software Testing Life Cycle.
What is Performance Testing?
Performance Testing is a process of evaluating system’s behavior under various extreme conditions. The main intent in Performance testing is monitoring and improving key performance indicators such as response time, throughput, memory, CPU utilization etc.
There are three objectives (three S) of Performance testing to observe and evaluate; Speed, Scalability and Stability.
Performance testing evaluates the system. It identifies the bottleneck and critical issues by implementing various workload models.
When to start Performance Testing?
Performance Testing starts parallel with Software Development Life Cycle (SDLC). NFR elicitation happens parallel with System Requirement Specification (SRS).
Now we will see the phases of Performance Testing Life Cycle (PTLC).
- Non-Functional Requirements Elicitation and Analysis
- Performance Test Strategy
- Performance Test Design
- Performance Test Execution
- Performance Test Result Analysis
- Benchmarks and Recommendations
1. Non-Functional Requirements Elicitation and Analysis
Understanding non-functional requirement is the inception and most critical phase in PTLC.
- Application Under Test (AUT) Architecture
- Non-Functional Requirement Questionnaire
- Understanding AUT architecture
- Identification of critical scenarios and understanding
- Understanding Interface details
- Growth pattern
- Client signed-off NFR document
2. Performance Test Strategy
This phase defined how to approach Performance Testing for the identified critical scenarios. Following are to be addressed during this phase.
- What kind of performance testing?
- Performance tool selection
- Hardware and software environment set up
- Signed-off NFR document
- Prepare the Test Strategy and Review
- Data set up
- Defining in-scope and out-scope
- Workload Model
- Prepare Risks and Mitigation and Review
- Baselined Performance Test Strategy doc
3. Performance Test Design
This phase involves with the script generation using identified testing tool in a dedicated environment. All the script enhancements should be done and unit tested.
- Baselined Test Strategy
- Test Environment
- Test Data
- Test Scripting
- Data Parameterization
- Designing the action and transactions
- Unit Testing
- Unit tested performance scripts
4. Performance Test Result Analysis
This phase involves dedicated to the test engineers who design scenarios based on identified workload and load the system with concurrent virtual users (VUsers).
- Baselined Test scripts
- Designing the scenarios
- Loading the test script
- Test script execution
- Monitoring the execution
- Collecting the logs
- Test script execution log files
5. Performance Test Result Analysis
The collected log files are analyzed and reviewed by the experienced test engineers. Tuning recommendation will be given if any conflicts identified.
- Collected log files
- Create graphs and charts
- Correlating various graphs and charts
- Prepare detailed test report
- Test report analysis and review
- Tuning recommendation
- Performance Analysis Report
6. Benchmark and Recommendations
This is the last phase in PTLC which involves benchmarking and providing recommendation to the client.
- Performance Analysis Report
- Comparing result with earlier execution results
- Comparing with the benchmark standards
- Validate with the NFR
- Prepare Test Report presentation
- Performance report reviewed and baselined
In next blog post, we will see how to select tool for Performance Testing. If you are enjoying our articles, please subscribe for our free weekly newsletter.
- Unboxing HPE LoadRunner 12.55 - August 20, 2017
- Measure Client-side Performance using Lighthouse - August 10, 2017
- Perf Calculator – free iOS app for performance testers - July 16, 2017
- How to performance test AngularJS or ReactJS applications? - June 25, 2017
- How to run Apache JMeter tests with Visual Studio Team Services? - June 6, 2017