What is Performance Testing?
Performance Testing on a software application is done to determine how speed, stability and scalability the application is. Speed refers to how fast the software application will respond, and stability refers to how the application handles varying workloads. Scalability is the total amount of workload the software application can handle.
What is Load Testing?
It is done to understand how varying expected loads would make the system behave. For instance, its behavior if they were many users concurrently using the same application to carry out critical transactions for a certain period of time. It is able to give the application's response time for all the important transactions in a business. Load testing can be done for a business's database and servers which will be very helpful in identifying any existent bottlenecks.
What is Stress Testing?
This is done to determine whether the software application can still perform well even in cases of extreme load. It helps the application administrators know to what extent the application can be stretched without creating bottlenecks.
What is Soak Testing?
Soak testing monitors the system's performance over time. It is also referred to as endurance testing. It aims at determining the system's capability to sustain the normal load over time. The test involves looking out for potential leaks by monitoring memory utilization, as well as performance degradation. Performance degradation refers to the system's response time over a prolonged period of sustained use. Does it remain constant, improve or decline? Results of this test are derived from application of a significant amount of load to the system for a particular period of time.
What is Spike Testing?
This test involves a sudden increase in the amount of load, for instance a sudden increase in the number of users making transactions using the application. It is meant to determine whether the system will crash, slow down or whether it will be able to handle the surge.
What is Isolation Testing?
This is usually a repeat of the test execution that had caused a problem in the system. It is done to confirm the domain in which the fault had occurred.
What is Volume Testing?
It is a non-functional test. A certain amount of data is used to test the software application. The data can be a database or an interface file like .dat or. xml. To volume test the database, expand it to the desired size and then test the application for it. If you need the application to interact with a specific interface file, get a sample of the size you desire and then run the application.
What is Failover Testing?
Failover testing is done in order to determine if a server fails during the heavy load: Is load balancer able to react quickly and is able to drive the traffic to another web server/application server. Is the other web server/application server able to handle the unexpected load. This test helps to determine how the server behaves during these type of scenarios.
Explain the performance test life cycle that you follow?
- Gathering the requirements from client
- Understanding the architecture/environment of the application
- Planning and Designing the tests
- Preparing and enhancing the scripts
- Executing the tests in controller
- Analyzing the results
- Fine tuning the application
- Retesting the application after fine tuning the application and repeat this process until we meet the SLA (Not 100% up to 90% at least).
What are all the requirements you gather from your client for performance testing?
- The architecture of the application and the technologies used to develop the application?
- What is a web server, application server and database server?
- What are the browsers and Java versions supported by the application?
- What are the different load balance techniques used?
- What are the protocols used between client and server? Ex: HTTP, HTTPS, FTP etc.
- What are the Business scenarios we need to test?
- What are the preferred tools for performance testing and monitoring? Ex: Loadrunner, Jmeter, Sitescope and Wily Introscope.
- What is the workload model and identifying the workload model?
- SLA of the application in terms of response times and hardware resource utilization.
Have you prepared Test Plan/Test Strategy?
Yes.
What are the contents in your Test Plan/Test Strategy?
It's always better to go through the test plan before the interview, it helps a lot. Some of the Test Strategy contents are Introduction, Purpose of The Document, Scope Of The Document, Application Architecture And Topology, Performance Testing Requirements And Dependencies, Objectives And Goals Of Performance Testing, Scope Of Performance Testing, In Scope, Out Of Scope, Application Performance Scenarios, Workload Characteristics, Application Test Environment, Performance Test Tools, Performance Test Dependencies, Hardware Dependency, Software Dependency etc.
What is little’s law?
Tell me some of the performance testing tools that you use in your company?
Loadrunner, Jmeter, Sitescope, HP Diagnostics, Wily Introscope, Dynatrace and Java Profiler.
What is performance tuning?
Performance tuning is done during the process of performance testing. Issues will be identified during the different types of performance testing. Performance tuning will be done based on the issues. It might be a software / hardware tuning. Usually Bottlenecks are identified in application and database servers. Proper tuning of the servers, code and SQL queries resolves the issue. Sometimes changes in the hardware resources will also help.