Engineering/Engineering Principles/8 Performance And Scalability/Performance Testing/

Performance Testing Standards · PT

Overview

This document provides guidance on best practices for writing performance tests for testers and developers to help ensure performance testing is consistent across projects.

Performance Tests: This is a broad category of non functional testing used to determine how a system performs in terms of responsiveness, stability, scalability, and speed under a particular workload.

Load Tests: This is a type of performance testing, these tests are designed to simulate a representative number of users accessing the system simultaneously to evaluate its performance under expected load conditions. E.g. Simulating 1,000 users accessing a website at the same time to see if it remains responsive.

Load tests must use a representative number of users · PT-01 · MUST · TEST

Load tests must simulate the expected number of concurrent users accessing the system to ensure the results reflect real-world usage.

Performance tests must use realistic data volumes ·PT-02 · MUST · TEST

Performance tests must use data volumes that are representative of production environments to ensure accurate results.

Load tests must cover the most common API calls and user journeys · PT-03 · MUST · TEST

Load tests must include the most frequently used API calls and user workflows to ensure critical paths are tested.

Performance tests should run on a regular schedule· PT-04 · SHOULD · TEST

Performance tests should be scheduled to run regularly (e.g. weekly or before a release) to identify performance issues early.

Performance insights should be gathered from diverse methods · PT-05 · SHOULD · TEST

Do not rely solely on load testing to assess system performance. Load testing is essential for understanding how a system behaves under expected user traffic, but it does not provide a complete picture.

Use a combination of performance testing methods to evaluate different aspects of system behavior. Examples include:

  • UI performance testing – to audit front-end performance, including page load speed, interactivity, and visual stability. Various tools can be used for this purpose, such as Lighthouse.
  • Stress testing - to determine how the system performs under extreme conditions and how it recovers from failure.
  • Endurance testing - to identify issues such as memory leaks or performance degradation over time.
  • Spike testing - to evaluate how the system handles sudden increases in load.
  • Scalability Testing - to evaluate how the system performs as the workload increases.