What is Performance Testing?
Performance testing is a way of verifying that your IT system can the meet its capacity and performance non-functional requirements (NFRs).
Capacity and performance NFRs are:
- Business demand
- System speed
- System efficiency
- System scalability
- System stability
- System resilience
Performance testing takes many forms such as stress testing, load testing, soak testing and single user testing. The objective is the same; reduce the performance risk to the system and ensure the system can meet its NFRs.
Do I need to conduct Performance Testing?
Not always! It depends on the level of performance risk in the system, and how much risk the business is prepared to accept.
What are the Drivers of Performance Risk?
Business changes, such as new features and functionality require IT system changes. As the rate of business change increases, so does the performance risk. Software delivery methodologies such as Agile and Continuous Delivery increase the rate of change.
The second driver of risk is the complexity of the change.
What are the Different Types of Performance Testing?
Load Testing determines the response time and throughput during forecast peak load.
Stress Testing determines the peak throughput, gradually increasing the load beyond that expected until the maximum achievable load is reached.
Volume Testing or Soak Testing determines the problems that occur during long-term activity (typically from 8 hours to 1 week).
Single User Testing determines the system resources consumed by a single transaction on an unloaded system, where queuing does not occur. This is used to measure the inputs required for performance and capacity models.
Performance testing is a powerful risk management technique to ensure the stability and performance of IT services.
Performance testing will be beneficial if your organisation meets one or more of the following criteria:
- Frequent and complex change to IT systems
- Rapid business growth
- Extraordinary peaks
- Desire to reduce information and communication technology (ICT) costs
- Requirement to reduce the risk of instability on business-critical services