Performance Testing Interview Questions, What is performance testing?, types of performance testing, performance test tools, and performance test process.
Performance Testing Interview Questions
1. What is Performance Testing?
Performance testing is a non-functional software testing type that determines how the stability, speed, scalability, and responsiveness of an application holds up under a given workload.
2. How to conduct Performance Testing?
Manual Testing is impractical to conduct performance testing, automation testing is only possible.
3. What are the different types of Performance Testing?
The major performance test types are:
i. Load Testing:
Load Testing is to verify that the system/application can handle the expected number of transactions and to verify the system/application behaviour under both normal and peak load conditions (no. of users).
ii. Stress Testing:
Stress Testing is to verify the behaviour 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.
iii. Spike Testing:
Spike Testing is to determine the behaviour of the system under sudden increase of load (a large number of users) on the system.
iv. Endurance Testing:
It is done to make sure the software can handle the expected load over a long period of time.
v. Volume Testing:
Checks that the software can handle and process a large amount of data at once without breaking, slowing down, or losing any information.
vi. 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.
4. What are the common performance problems?
Performance testers will typically run into at least one of these four problems during testing.
i. Long Load Time
ii. Poor Response Time
iii. Poor Scalability
iv. Bottlenecking (coding errors or hardware issues)
5. What are the common performance bottlenecks?
Some common performance bottlenecks include
i. CPU Utilization
ii. Memory Utilization
iii. Networking Utilization
iv. Software limitation
v. Disk Usage
6. What are the Important performance testing tools?
i. Apache JMeter
ii. Micro Focus LoadRunner
iii. IBM RPT (Rational Performance Tester)
iv. Micro Focus Silk Performer
vii. SmartBear LoadNinja
7. What are the important Performance testing metrics?
- Response time
- Requests per second
- User transactions
- Virtual users per unit of time
- Error rate
- Wait time
- Average load time
- Peak response time
- Concurrent users
- Total user sessions
- CPU utilization
- Memory utilization
8. What is throughput in Performance Testing?
Throughput is referred to the amount of data transported to the server in responds to the client request at a given period of time.
It is calculated in terms of requests per second, calls per day, reports per year, hits per second, etc. Performance of application depends on throughput value, higher the value of throughput -higher the performance of the application.
9. What is a Performance Tuning?
There are two types of Performance Tuning:
i. Hardware Tuning – Enhancing, adding or supplanting the hardware components of the system under test and changes in the framework level to augment the system’s performance is called hardware tuning.
ii. Software Tuning – Identifying the software level bottlenecks by profiling the code, database etc. Fine tuning or modifying the software to fix the bottlenecks is called software tuning.
10. What are the important protocols used in performance Testing?
- Web – HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- SOAP/REST Webservices
- Database via JDBC/ODBC
- Message-oriented middleware (MOM) via JMS
- Mail – SMTP(S), POP3(S) and IMAP(S)
- Native commands or shell scripts
11. What is automated correlation?
Correlation is the process of capturing and storing the dynamic response from the server and passing it on to subsequent requests.
12. Explain the Performance Test Process (Automated Test Process)?
Important Steps in Performance Test Process are:
i. Identify the Testing Environment.
Identify the hardware, software, network configurations and tools for conducting Performance testing.
ii. Identify Performance Metrics.
Identify metrics such as response time, throughput and constraints and identify what is the success criteria for performance testing.
iii. Plan and Design Performance Tests.
Identify performance test scenarios that take into account user variability, test data, and target metrics.
iv. Configure the Test Environment.
Prepare the elements of the test environment and instruments needed to monitor resources.
v. Implement your test design.
Record Test Scripts, Create and Apply multiple users (Virtual users) Load
vi. Execute Tests.
Run Performance Tests.
vii. Analyze, tune and retest.
Analyze the Test Results, then fine tune and test again to see if there is an improvement or decrease in performance.