CSE 270: Software Testing - Reading Material

5.4 Performance Testing

Overview

Performance testing is a phase in the software development life cycle that evaluates how a system performs under various conditions, ensuring it meets performance expectations and user requirements. This chapter explores the purpose of performance testing and delves into specific types such as Load Tests, Stress Tests, Soak Tests, and Spike Tests. Additionally, it discusses findings from load testing and the measurement and reporting of performance using metrics like SLA (Service Level Agreement), SLO (Service Level Objective), and SLI (Service Level Indicator).

Purpose of Performance Testing

Performance testing aims to assess the responsiveness, speed, scalability, and overall stability of a software application or system. By subjecting the system to different conditions, performance testing helps identify bottlenecks, weaknesses, and areas for improvement, ensuring optimal user experience even under high loads.

Below are some typical types of performance tests and related examples.

Performance Testing Measurements

Here are some common ways to measure the performance of a system.

Of course, performance testing is never done in a vacuum. You may test your software for performance but what constitutes an acceptable performance level? The answer is not always as obvious as you think. Performance must be measured against expectations. These expectations are usually set in the form of service level agreements, service level objectives and service level indicators. These metrics together form the basis of agreed-upon performance.

Let’s explore each of these separately.

Service Level Agreement (SLA)

Service Level Objective (SLO)

Service Level Indicator (SLI)

SLAs provide a comprehensive view of service expectations, while SLOs and SLIs offer more granular insights into specific aspects of performance. Together, these metrics form a hierarchy that guides measuring and reporting processes, helping organizations maintain high-performance standards and deliver exceptional user experiences.