Monday, January 10, 2022

Performance Testing Types & Metrics

Performance testing is a non-functional testing technique that exercises a system and then , measures, validates and verifies the response time, stability, scalability, speed and reliability of the system  in production-like environment.

It may additionally identify any performance bottlenecks and potential crashes when the software is subjected to extreme testing conditions. The system can then be fine-tuned by identifying and addressing root cause of the problem.

The main objective of Performance testing is to compare behavior against system requirements. If performance requirements were not expressed by stakeholders, then the initial testing effort will establish baseline metrics for the system, or the benchmark to meet in future releases.

Different applications may have different performance benchmarks before the product is made available to the end user. A wide range of Performance tests are done to ensure that the software meets those standards.

This article is focused on some commonly used Performance testing techniques and the process involved in testing an application.

Performance Testing Metrics

Every system has certain Key Performance Indicators (KPI’s) or metrics that are evaluated against the baseline during Performance testing.  

Some of the commonly used Performance Metrics are described below.

Performance Testing
  • Response time: Response Time is the time elapsed between a request and the completion of request by the system. Response time is critical in Real Time Applications. Testers usually monitor Average Response Time, Peak Response Time, Time to first byte, Time to last byte etc.
  • Latency: Latency is waiting time for request processing. It is time elapsed between request till the time first byte is received.
  • Error Rate: Error rate is percentage of requests resulting in errors as compared to total number of requests. Rate of errors may increase when application starts reaching its threshold limit or goes beyond.
  • Throughput: This is the measure of number of processes/transactions handled by system in a specified time.
  • Bandwidth: Bandwidth is an important metrics to check network performances. It is the measure of Volume of data per second.
  • CPU Utilization: This is a key metrics which measures the percentage of time CPU spends in handling a process. High CPU utilization by any task is red flagged to check any performance issues.
  • Memory Usage: If the amount of memory used by the process is unusually high despite of proper handling routines, then it indicates that there are memory leaks which need to be plugged before system goes live.

Based on the type of application being tested, the technical and business stakeholders select which metrics need to be checked and accordingly attach priorities to them. Unlike functional requirements, performance requirements are not binary. The metrics are usually expressed with a target percentile, and sometimes combined with other metrics. For example, latency might be expressed with throughput: response time must be less than 500 milliseconds for 90% of responses at a throughput of 10 requests per second.Read for more : Manual Testing

Webomates CQ, a tool by Webomates is used for performing regression testing for all the domains. Request a demo today.

No comments:

Traceability Matrix: Ensuring Quality and Compliance in Software Testing

  Introduction In the aspect of software testing, thoroughness in that all aspects have been covered and none of the important aspects has b...