kick-start to Performance Testing
Why Companies concern about Performance Testing?
Has your organization experienced a failure that could have been avoided with performance testing? Most organizations have. Stable websites may crash under the peak load of a holiday sale. Transaction processing may fail due to issues in data transfer rates, network bandwidth or throughput.
The night of the results of the general elections, the Canadian Immigration website crashed due to high interest by disappointed Americans in moving to Canada.
Macy’s, the largest US department store chain, which is moving its business online, crashed under Black Friday loads. The website and app were both unavailable, resulting in unsatisfied customers ranting on social media.
Performance Testing in Software Testing
Performance testing is critical as it provides valuable information on the scalability, stability and reliability of your application. Yet, planning an effective performance test strategy is complex because performance testing covers many specialized test types that must be applied in specific ways. Here is a review of the major performance test types and how they are applied to create an effective performance test.
The attributes of Performance Testing include:
Performance Testing : Performance testing is performed to determine how fast a system performs user a particular workload. Its purpose is to determine speed, scalability and stability. The process by which software is tested to determine the current system performance.
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.
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. Memory consumption is observed to determine potential failures.
Spike Testing : tests the software’s reaction to sudden large spikes in the load generated by users.
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.
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.
Performance Testing vs Performance Engineering
Performance Testing is a discipline concerned with testing and reporting the current performance of a software application under various parameters.
Performance Engineering is the process by which software is tested and tuned with the intent of realizing the required performance. This process aims to optimize the most important application performance trait i.e. user experience.
Performance Testing Activities
Recommended by LinkedIn
Performance Testing Matrices
Server resource usage (CPU, memory, disk): The amount of CPU, memory, and disk resources used by a system.
Bandwidth : shows the bits per second used by a network interface.
Throughput : rate a computer or network receives requests per second.
Thread counts : An application health can be measured by the no. of threads that are running and currently active.
Garbage collection : It has to do with returning unused memory back to the system. Garbage collection needs to be monitored for efficiency.
Response time : time from when a user enters a request until the first character of the response is received.
Latency : Latency is a measure of responsiveness that represents the time it takes to complete the execution of a request.
Think Time : time between the completion of one request and the start of the next request.
Percentiles : A percentile is a very useful performance testing metric that gives a measure under which a percentage of the sample is found. For example, the 90th percentile (abbreviated as p90) indicates that 90% of the sample is below that value and the rest of the values (that is, the other 10%) are above it.
Average : simply add up all the values of the samples and then divide that number by the number of samples.
Medians : Line up the members from minimum to maximum, mark the member in the middle and see what his amount is.
Concurrent Users : The number of users accessing a system simultaneously.
Transactions per second : The number of transactions completed by a system per second.
Error rate : The percentage of requests that result in errors.
Bottleneck
Bottleneck literally refers to the top narrow part of a bottle. In engineering, it refers to a phenomenon where the performance or capacity of an entire system is limited by a single or small number of components or resources.
Performance testing helps to identify bottlenecks in a system, establish a baseline for future testing, support a performance tuning effort, and determine compliance with performance goals and requirements. Including performance testing very early in your development life cycle tends to add significant value to the project.
Application Server Performance Bottlenecks
DB Server Performance Bottlenecks
Web Application Performance Bottlenecks
Popular Performance Testing Tools
Introduction to JMeter
JMeter is an open source tool that can be used for performance and load testing for analyzing and measuring the performance of a variety of services. This tool is mainly used for web and web service applications.
[To be continued]
References :
Great work 👌
good work vikum❤️
Good work wikum
Good job Brother❤️😊
Great work Vikum