Performance testing interview questions sometimes make the testers sweaty. In this article, we address this problem and try to help you for interviews. Here are some questions that you might encounter in an interview for Performance Test Engineer.
Explain what is performance testing?
Performance testing is putting a software or a hardware under heavy load to measure its performance aligned with non-functional requirements. By this way, we make sure the application under tests is working well under the expected and unexpected workloads.
Mention different types of performance testing?
- Load testing
- Stress testing
- Endurance testing
- Spike testing
- Volume testing
What differs the volume and endurance test from each other?
Endurance test tries to analyze applications behavior on a longer period of time. During endurance tests, most critical issue to monitor is memory consumption. Volume tests aim to analyze the application’s behavior when there’s a huge volume of data.
What are the performance testing tools on the market?
- HP Loader
How would you decide which tool to use except for budget issue? Think about you have tons of money.
- What skills does it require is the most important issue. Some tools require JS, some of them Scala or Python. We need to consider the test team’s skills.
- Protocol support: Some tools require a limited range of protocols to simulate. Do we need to understand what kind of protocols do we need to test? Combining the protocols in a test is also crucial as a scenario might start with a TCP/IP request and continue with HTTPS. Combining and maintaining them must be easy.
- Reporting. Some tools generate poor reports and you have to deal with all those numbers to come up with a solution. We need detailed reports that show how many users application can handle, which pages or modules load slowly. The most important report is the Response Time Graph
- Installation: Some tools are easy to install like a minute but some commercial tools require so many components to install before starting using. Also, OS version they support is important. For example, JMeter supports Windows, Linux, and other environments but HP requires Windows for its core modules.
- Cloud integration: Creating huge loads requires so many resources so cloud integration is a must. You can run JMeter and Gatling on SaaS platforms like Loadium and Blazemeter.
Which requirements are crucial for performance testing?
Non-functional requirements must define how the application behaves. That’s why before starting to any performance testing project, we need to define our KPI’s to validate our test execution results.
What’s the difference between a record and playtest and API testing?
In API testing, we only make requests to an endpoint. But in a Record and Play performance testing, we make a request to not only endpoint but also to HTML, JS, CSS files or a CDN server to retrieve static images. Record and Play performance increase the test coverage.
Explain what are the common mistakes in Performance Testing?
The common mistakes done in Performance Testing are:
- Not enough ramp-up time which is increasing the number of users suddenly.
- The shorter period of test runs.
- Simulating the user number instead of transaction count.
- Having not enough test user to test single sign-on systems.
- Confusion on the definition of concurrent users
What is performance tuning? How many types are there?
Performance tuning is done for improving the system performance. There are two ways of tuning and application
- Hardware Tuning: Optimizing, adding or replacing hardware components of the system to increase its capacity.
- Software Tuning: Identifying the software level bottlenecks on the code, database or on another layer by profiling an fixing them.
What are Ramp-Up and Ramp-Down?
The rate at which we increase the load on the system is called the ramp-up period. During that time, virtual users or thread starts to generate.
The rate at which virtual users/thread terminates their execution is the ramp down period.
Why would you need a CSS extractor in a performance test?
In web application testing, we need to extract data from a page like a price of a product or username. In order to do those operations, we need to use CSS extractor.
What kind of data extraction strategies can you use besides CSS?
You can use regular expressions to extract data. JsonPath is a good way to extract data from a JSON file. You can also use XPath for SOAP web services.
How would you perform the performance test on a mobile application?
Mobile application are no different than any web or desktop application. They are using similar protocols but recording the request from Mobile device is tricky. You need to setup a proxy and install SSL certificates in the target device to be able to capture all requests. MitmProxy or Charles Proxy are very powerful tools for that purposes. After capturing that requests, designing and executing the are no different.
What is mean, mode and median? Why are those crucial to analyze a performance test result?
The mean is the average of all the numbers and then divide by the count of numbers.
The median is the middle value in an ordered(smallest to largest) list of numbers .
The mode is the value that occurs most often. We can use those data to analyze the graph response time or distribution graphs and validate if the response times are stable. Additionally, nice to have statistical information besides those are normal and formal distribution.
Why is parameterization and data correlation is a must for performance testing?
Nowadays, many applications are using caching between the server and the user. In case we don’t use random or parametric data, we can get a response directly from the cache server and our actual applications server don’t get the load. The more parametrization the more load on the server.
I hope this questions and their answers will help you in your performance testing interviews.
Good Luck and crack the performance testing interviews! ;)
Canberk Akduygu is a Test Lead working on Test Automation and Performance Testing in Amsterdam at Qardio.