In this post, we cover a list of Performance Testing Interview Questions & Answers for freshers as well as experienced performance testers.
Performance Testing Interview Questions And Answers For Experienced & Freshers
Let’s get started.
What is Performance Testing?
In software, performance testing (also called Perf Testing) determines or validates the speed, scalability, and/or stability characteristics of the system or application under test. Performance is concerned with achieving response times, throughput, and resource-utilization levels that meet the performance objectives for the project or product.
Web application performance testing is conducted to mitigate the risk of availability, reliability, scalability, responsiveness, stability, etc. of a system.
Performance testing encompasses a number of different types of testing like load testing, volume testing, stress testing, capacity testing, soak/endurance testing, and spike testing each of which is designed to uncover or solve performance problems in a system.
Difference between Performance Engineering & Performance Testing?
Performance engineering is a discipline that includes best practices and activities during every phase of the software development life cycle (SDLC) in order to test and tune the application with the intent of realizing the required performance.
Performance testing simulates the realistic end-user load to determine the speed, responsiveness, and stability of the system. It concerned with testing and reporting the current performance of an application under various parameters such as response time, concurrent user load, server throughput, etc.
What is performance tuning? What are the types of Performance Tuning?
Performance tuning is a process that focuses on the improvement of system performance.
There are two types of Performance Tuning.
1. Hardware Tuning: Optimizing, adding, or replacing the hardware components of the system to make improvements in the performance of the system is called hardware tuning.
2. Software Tuning: Identifying the software level bottlenecks by profiling the code, database, etc. With the help of fine-tuning or modifying the software to fix the bottlenecks is called software tuning.
What is profiling in Performance Testing?
Profiling helps in fine-tuning the application by optimizing the code. The code must be analyzed, debugged, and reviewed to determine the most effective way to make it run faster.
Name some common performance bottlenecks?
The goal of performance testing is to eliminate performance bottlenecks. Some common performance bottlenecks are as follows
- CPU Utilization
- Memory Utilization
- Networking Utilization
- Software limitation
- Disk Usage
What are the entry and exit criteria for Performance Testing?
Entry Criteria: Well defined Service Level Agreement (SLA)/Performance Goals
Exit Criteria: To achieve the SLA/Performance Goals
What involves in Performance Testing Process
Identify the test environment:
Identify the physical test environment, production environment, and know what testing tools are available. Before beginning the testing process, understand the details of the hardware, software, and network configurations. This process must be revisited periodically throughout the project’s life cycle.
Identify performance acceptance criteria:
This includes goals and constraints for response time, throughput, and resource utilization. Response time is a user concern, throughput is a business concern, and resource utilization is a system concern. It is also necessary to identify project success criteria that may not be captured by those goals and constraints.
Plan & Design performance tests:
Identify key scenarios to test for all possible use cases. Determine how to simulate that variability, define test data, and establish metrics to be gathered.
Configure the Test Environment:
Prepare the test environment, arrange tools and other resources before execution
Implement the Test Design:
Develop the performance tests in accordance with the test design
Execute the Test:
Execute and monitor the tests
Analyze Results, Report, and Retest:
Consolidate, analyze, and share test results. Fine-tune and retest to see if there is an improvement in performance. When all of the metric values are within acceptable limits then you have finished testing that particular scenario on that particular configuration.
When should we use performance testing?
Performance testing should be done during the development, during the QA process, prior to product release, after new releases, and marketing initiatives. The simple answer is any time when the system changes.
Why should we automate performance testing?
Many performance testing tools in the market contain components used for performing automated testing. We get more time to spend on analyzing results while our build system does repetitive tasks using automation. Due to this repetitive automation tasks, it’s easier to test more regularly and can find issues early.
Give some example of Performance Test Cases
Writing test cases for performance testing requires a different mindset compared to writing functional test cases.
Read more: How To Write Functional Test Cases
- To verify whether an application is capable of handling a certain number of simultaneous users
- To verify whether the response time of an application under load is within an acceptable range when the network connectivity is slow
- To verify the response time of an application under low, normal, moderate and heavy load conditions
- To check whether the server remain functional without any crash under high load
- To verify whether an application reverts to normal behavior after a peak load
- To verify database server and CPU and memory usage of the application under peak load
What are the phases involved in the Performance Testing Life Cycle?
Phases in Performance Testing Life Cycle are as follows
- Non-functional requirement analysis
- Performance Test Strategy
- Performance Test Design
- Performance Test Execution
- Performance Test Result Analysis
- Benchmarks and Recommendations
Difference between Functional Testing and Non-functional Testing?
|Functional Testing||Non-functional Testing|
|What the system actually does is functional testing||How well the system performs is non-functionality testing|
|To ensure that your product meets customer and business requirements and doesn’t have any major bugs||To ensure that the product stands up to customer expectations|
|To verify the accuracy of the software against expected output||To verify the behavior of the software at various load conditions|
|It is performed before non-functional testing||It is performed after functional testing|
|Example of functional test case is to verify the login functionality||Example of non-functional test case is to check whether the homepage is loading in less than 2 seconds|
|Testing types are |
• Unit testing
• Smoke testing
• User Acceptance
• Integration Testing
• Regression testing
|Testing types are
• Performance Testing
• Volume Testing
• Usability Testing
• Load Testing
• Stress Testing
• Compliance Testing
• Portability Testing
• Disaster Recover Testing
|It can be performed either manual or automated way||It can be performed efficiently if automated|
Difference between Performance Testing, Load Testing & Stress Testing
|Performance Testing||Load testing||Stress testing|
|It is a superset of load and stress testing||It is a subset of performance testing||It is a subset of performance testing|
|Goal of performance testing is to set the benchmark and standards for the application||Goal of load testing is to identify the upper limit of the system, set SLA of the app and check how the system handles heavy load||Goal of stress testing is to find how the system behaves under extreme loads and how it recovers from failure|
|Load limit is both below and above the threshold of a break||Load limit is a threshold of a break||Load limit is above the threshold of a break|
|The attributes which are checked in performance testing are speed, response time, resource usage, stability, reliability and throughput||The attributes which are checked in a load testing are peak performance, server throughput, response time under various load levels, load balancing requirements etc.||The attributes which are checked in a stress testing are stability response time, bandwidth capacity etc.,|
What are the different types of Performance Testing?
Types of Performance testing are as follows
- Load Testing
- Stress testing
- Soak/Endurance testing
- Spike testing
- Volume testing
- Scalability testing/Capacity testing
What is Load Testing?
Load Testing is done to verify that a system/application can handle the expected number of transactions and to verify the system/application behavior under both normal and peak load conditions (no. of users).
Load Testing is a subset of Performance Testing and is a type of non-functional testing.
Read more: Load Testing Complete Guide
What is Scalability/Capacity Testing:
Capacity Testing is to determine how many users a system/application can handle successfully before the performance goals become unacceptable. This allows us to avoid potential problems in the future such as increased user base or increased volume of data. It helps users to identify a scaling strategy in order to determine whether a system should scale-up or scale-out. It is done majorly for eCommerce and Banking sites. are some examples. This testing is sometimes called Scalability testing.
What is Volume Testing?
Volume Testing is to verify whether a system/application can handle a large amount of data. This testing focuses on Data Base. Performance tester who does volume testing has to populate a huge volume of data in a database and monitors the behavior of a system.
What is Stress Testing?
Stress Testing is to verify the behavior of the system once the load increases more than the system’s design expectations. This testing addresses which components fail first when we stress the system by applying the load beyond the design expectations. So that we can design a more robust system.
What is Soak/Endurance Testing?
Soak Testing is aka Endurance Testing. Running a system at a high load for a prolonged period of time to identify the performance problems is called Soak Testing. It is to make sure the software can handle the expected load over a long period of time.
What is Spike Testing?
Spike Testing is to determine the behavior of the system under a sudden increase of load (a large number of users) on the system.
Read more: 100+ Types of Software Testing
What are some common performance problems does a user’s faces?
Some of the common performance problems faced by users are
- Longer loading time
- Poor response time
- Poor Scalability
- Bottlenecks like coding errors or hardware issues
Name some parameters considered for Performance Testing?
Some of the parameters for Performance Testing are:
- Memory usage
- Processor usage
- Memory pages
- Network output queue length
- Response time
- CPU interruption per second
- Committed memory
- Thread counts
- Top waits
What are the factors considered for selecting performance tools?
Some factors considered for choosing the best performance testing tool for Performance Testing.
- Budget (License cost)
- Types of license
- Easy installation
- Protocol support
- Customer preference of load testing tool
- The cost involved in training employees on the selected tool
- Hardware/Software requirements of a loading tool
- Tool Vendor support and update policy
- Detailed Reporting
- Cloud integration
Name some popular performance testing tools?
Some popular performance testing tools are as follows
- Apache JMeter
- LoadUI Pro
What is throughput in Performance Testing?
Throughput is one of the key metrics in performance testing. It refers to the amount of data transferred between the client and server at a given period of time, generally resulting as bits per second (bps).
It is calculated in terms of a number of requests per time.
Throughput = (number of requests) / (total time)
Example: bits per second, bytes per second (Bps), kilobytes per second (KBps), megabytes per second (MBps), and gigabytes per second (GBps).
If a server receives 60 requests in one minute then the throughput is one request per second. If it receives 120 requests in one minute then the throughput is two requests per second. And so on.
What do concurrent users mean in performance testing?
Concurrent users are the number of users engaged with the application at a given time. All the users might be in the middle of some kind of session but they are all doing different actions.
What is the protocol in performance testing?
Protocol in performance testing is a language used for the purpose of communication between the client and the server. By choosing the protocol in a performance testing tool instructs the tool to capture the communication in the selected language for the selected client with its server.
Some of the Protocols are:
- Web Services
What is a parameterization in performance testing?
Parameterization is used to replace the hardcoded values in the script with a parameter.
What is the correlation in performance testing?
Correlation is used to capture dynamic values in the test script in performance testing and prevent the scripts from failing during execution. If a value changes for each user action when an action is replayed by the same or different user is known as a dynamic value.
What is baseline testing in performance testing?
This testing is done on an application before coming to any conclusion and to get a reference for our further tests. These tests should help us determine what response is normal for the server. We can then use these values to set up the assertion in other tests.
What is the Benchmark Testing in performance testing?
Benchmark testing is the process of comparing the performance of software or hardware against industry standards that are set by other organizations.
Here I am going to conclude this Performance Testing Interview Questions post. If you find that I didn’t cover some questions, please let me know in the comment section below. I will try to update this Performance Testing Interview Questions & Answers.