Friday 1 February 2019

Performance Testing Basics

What is Performance Testing?


Performance testing is a non-functional testing technique performed to determine the system parameters in terms of responsiveness and stability under various workload. Performance testing measures the quality attributes of the system, such as scalability, reliability and resource usage.

The focus of Performance Testing is to check -
  •     Speed - Application's response time.
  •     Scalability - Maximum user load the software application can handle.
  •     Stability - Determines if the application is stable under varying loads.

Why Do Performance Testing?


Performance Testing is done to provide with test report about the application regarding speed, stability, and scalability.Lack of Performance Testing, software is likely to suffer from issues such as: running slow while several users use it simultaneously, inconsistencies across different operating systems and poor usability.Applications released to market with poor performance metrics due to nonexistent or poor performance testing are likely to gain a bad reputation and fail to meet expected sales goals.

According to Dunn & Bradstreet, 59% of Fortune 500 companies experience an estimated 1.6 hours of downtime every week. Considering the average Fortune 500 company with a minimum of 10,000 employees is paying $56 per hour, the labor part of downtime costs for such an organization would be $896,000 weekly, translating into more than $46 million per year.

Only a 5-minute downtime of Google.com (19-Aug-13) is estimated to cost the search giant as much as $545,000.

It's estimated that companies lost sales worth $1100 per second due to a recent Amazon Web Service Outage.

Hence, performance testing is highly important before software release. 

Types of Performance Testing

  • Load testing - checks the application's ability to perform under anticipated user loads. The objective is to identify performance bottlenecks before the software application goes live.
  • Scalability testing - The objective of scalability testing is to determine the software application's effectiveness in "scaling up" to support an increase in user load. It helps plan capacity addition to your software system.
  • Stress testing - involves testing an application under extreme workloads to see how it handles high traffic or data processing. The objective is to identify the breaking point of an application.
  •  Endurance testing - is done to make sure the software can handle the expected load over a long period of time.
  • Volume testing - Under Volume Testing large no. of. Data is populated in a database and the overall software system's behavior is monitored. The objective is to check software application's performance under varying database volumes.
  • Spike testing - tests the software's reaction to sudden large spikes in the load generated by users. 

Performance Testing Covers -

  • Simulate real time business use cases for web applications.
  • Test the app under expected concurrency.
  • validating the app/servers readiness ahead of peak events.
  • Test the app before/after version release to ensure stability. 

7 comments:

  1. Software House Audacity24
    Audacity24 (#ADS) is one of the fast growing IT services provider in international market. We provide quality and reliable IT solutions; combination of real-time analytics, data integration and process in a comprehensive way enables our customers to drive their business with maximum operational efficiency and customized systems for making smarter decisions for better services.

    ReplyDelete

  2. You might comment on the order system of the blog. You should chat it's splendid. Your blog audit would swell up your visitors. I was very pleased to find this site.I wanted to thank you for this great read!!
    Data Analyst Course

    ReplyDelete