Explore topic-wise InterviewSolutions in .

This section includes InterviewSolutions, each offering curated multiple-choice questions to sharpen your knowledge and support exam preparation. Choose a topic below to get started.

1.

How is performance testing different from functional testing?

Answer»
Performance TestingFunctional Testing
Helps to validate the system behaviour at different load conditions.Helps to verify the software accuracy with KNOWN inputs and expected output.
This testing is preferred to be DONE in an automated way.This testing can be done both manually and automatically.
Several USERS can perform desired operations.Here, only one user performs the operations.
Clients, Testers, developers, DBA and NETWORK teams are involved here.Customer, Tester and Development teams are involved here.
This requires a TEST environment that is close to the production environment to get the best results.Here, we do not require a close to the production environment for testing.
Non-functional requirements are tested here.Functional requirements and business logic is tested here.
2.

Why is JMeter used for?

Answer»

JMeter is a Java-based tool for performing load testing. It helps in ANALYZING and measuring the performance of web services with the USE of plugins. The latest JMeter version is 5.4.2 that requires a Java 8+ version to RUN.

3.

What do you know about Scalability testing?

Answer»

SCALABILITY testing is a type of performance testing that analyzes how well the software is CAPABLE of handling COMPLEX OPERATIONAL capacity from a simple capacity. Some software TAKES time to adapt to complex capacities. This testing ensures that the application can scale quickly without any glitches or drawbacks.

4.

What kind of testing deals with subjecting the application to a huge amount of data?

Answer»

This kind of testing is known as volume testing. It deals with subjecting the APPLICATION to a HUGE amount of DATA to determine how much data the application can handle when there are a good load of users accessing the application concurrently. It verifies the performance of a system to test WHETHER it can handle a stipulated volume of data by entering huge data volume to the application either incrementally or steadily.

5.

What is load tuning?

Answer»

Load tuning is a PROCESS of performance improvement technique by conducting NECESSARY modifications to the SOFTWARE CONFIGURATIONS depending on the results of load TESTING.

6.

What do you mean by profiling in performance testing?

Answer»

PROFILING is the process of fine-tuning the performance TESTING process by HELPING to identify the system components RESPONSIBLE for most of the issues RELATED to its performance.

7.

What is the metric that determines the data quantity sent to the client by the server at a specified time? How is it useful?

Answer»

Throughput is the metric that determines the data quantity sent to the client in response to its request by the server. It is calculated in terms of REQUESTS per second, hits per second, calls per day, ETC. In most CASES, it is calculated in bits per second. The value of throughput TELLS the slowness or fastness of the NETWORK and its bandwidth capabilities. The higher the throughput, the higher is the network capability.

8.

What do you understand by distributed testing?

Answer»

Distributed TESTING is the PROCESS of testing APPLICATIONS when LOTS of users are gaining access to the application from different devices simultaneously. This helps to perform stress testing. 

A brief overview of the distributed testing is represented in the image below:

9.

What are the steps involved in conducting performance testing?

Answer»

Following are the steps involved in the Performance TESTING Lifecycle:

  • Requirement Analysis: The first step is to determine all the requirements needed for testing after consulting with the clients and developers. This helps in determining the scope and objectives of testing and helps testers to plan out testing accordingly.
  • Architecture Review: Once all the requirements are gathered and testing is planned, we perform an architectural review of the system under test.
  • Test Strategy: Once the review is done, carefully layout the strategies required for performance testing that considers the following criteria -
    • RESPONSE time of the application
    • Application bottlenecks involving both software and hardware
    • Optimal configuration of the system
    • System capacity and scalability
    • Resource utilization percentage
    • Volume of data and workload capability of the application
  • Test Design: Once the strategy is ready, the testers have to come up with automation scripts or prepare the testing ENVIRONMENT using the tools by following all the best PRACTICES and coding STANDARDS. The testers have to come up with various test scenarios covering both positive and negative cases.
  • Test Execution: The scripts prepared in the previous step would be simulated and executed.
  • Results Analysis: The result of test execution will be analyzed and documented for recording purposes. These metrics will be observed and tracked for any defects.
  • Reports and Recommendations: The documented results will be presented to the developers along with the recommended resolutions.
10.

How is performance testing different from performance engineering?

Answer»

Both of these terms are closely related yet distinct. Performance testing is a subset of performance engineering that primarily deals with gauging the performance of the application under varying loads. 

The difference between these two are as follows:

Performance TestingPerformance Engineering
This deals with designing test cases and executing them for determining the performance of an application.This deals with engineers taking an active part in the SDLC cycle to DEVELOP HIGH-performance websites.
It helps in uncovering bugs and performance bottlenecks by providing analysis reports to the developers to resolve them.This helps developers meet the business requirements and meet the industry STANDARDS for reliability, scalability and speed right from the beginning of the application development process.
This makes use of a variety of tools that is only concerned if a website sustains with a given load.Performance engineering is more of a culture that emphasizes more on using best practices for ensuring that the high-performing applications are developed.
This can be performed using cloud-based tools without requiring the background of programming skills.To follow best coding practices to deliver high performing apps, it is very much essential to have GOOD programming knowledge.
11.

What do you understand by performance tuning?

Answer»

Performance Tuning is the PROCESS of identifying performance bottlenecks and taking steps to eliminate them. There are two types of tuning, they are:

  • Hardware tuning: This TYPE of tuning helps in improving the system performance by either replacing, adding or optimizing the hardware (PROCESSOR, CPU, RAM ETC) of a system to eliminate the bottlenecks caused due to hardware.
  • Software tuning: This helps identify software bottlenecks by performing code and database profiling. Here, the software code will be modified for resolving the bottlenecks.
12.

What are some of the common problems that occur due to poor performance?

Answer»

Following are some of the issues CAUSED due to poor performance:

  • Bottlenecking – These are obstructions that contribute to system degradation in terms of performance. They occur when there are coding errors or hardware issues that reduces the throughput of the application under CERTAIN workloads.
  • Poor response time – Response time REFERS to the time taken by the application to RESPOND to any request. For the best user experience, the response times should be very fast. Poor performance of the application leads to slower response times. If response times are slow, then the user loses interest in our application and might turn towards the competitor’s application.
  • Long Load time – Load time refers to the initial time taken by an application to start. This time should be as minimum as possible. Low performance leads to increased load time.
  • Poor scalability – This impacts software from handling expected user load which makes the application unavailable to some set of users.
13.

What is the need for conducting performance tests?

Answer»

Performance testing is conducted for providing information to the stakeholders about the speed, capability, reliability and scalability of the application. These help in identifying what needs to be done for improving the application before it goes to the end-users in the market.

  • If the application was released to the market without conducting performance testing, then the issues such as slowness in software, application inconsistencies, application crash under the influence of heavy workloads would not be detected.
  • Performance testing helps to determine if the application meets the performance REQUIREMENTS under varying workloads. If an application with poor performance attributes is launched to the market, then it can lead to a bad reputation and loss in sales.
  • Whenever we are DEALING with mission-critical applications or life-saving systems, then it is very much necessary to conduct performance testing so that the application behaves consistently for a long period.
  • Just a 5-minute downtime of Google.com in the year 2013 resulted in losses of $545,000. According to LovetheSales.com, a downtime of YouTube for 37 minutes cost Google around $1.7m in losses in ad revenues in the year 2020. According to GREMLIN, Amazon.com loses $13,219,128 PER HOUR due to downtimes. We can see the revenue impact of software downtimes on the companies.

Hence, performance testing is very much crucial before any application is launched to the market.

14.

What are some of the common performance bottlenecks and how do they impact your application?

Answer»

Bottlenecks are system obstructions that contribute to degradation in the system’s performance. They are caused either by hardware issues or coding errors that lead to a reduction of throughput under varying loads. Some of the common bottlenecks in performance are:

  • Processor bottlenecks: These occur when the processor is overloaded and cannot perform its tasks and respond to requests on time. These can be in 2 forms:
    • CPU running at above 80% CAPACITY for a prolonged period.
    • A long queue of requests for the processor.
      Both of these forms occur when the system has insufficient memory and has continuous interruption from the I/O devices. They can be resolved by adding more RAM, increasing CPU power and improving algorithmic efficiency.
  • Memory Utilization: This bottleneck OCCURS when the system does not have fast RAM or does not have sufficient memory. This impacts the speed of serving information to the CPU thereby slowing down the application. Whenever the device does not have enough RAM, the STORAGE will be offloaded to SSD or HDD. These issues can be resolved by increasing the memory capacity or increasing RAM. If the RAM is very slow, then it can be replaced. Sometimes the problem can arise due to memory leak issues wherein a program does not release memory so that the system can use it. Correcting the application program to free memory also can fix the issue.
  • Network bottlenecks: These occur when two or more devices lack the necessary bandwidth to communicate with each other. Whenever there is an overburdened server or overloaded network that causes the network to lose its integrity. These issues can be resolved by upgrading servers, network hardware like hubs, routers, access points etc.
  • Software bottlenecks: These bottlenecks are due to the software where programs are built for handling finite tasks so that it doesn’t utilize additional RAM or CPU. This makes the program use only a single CORE or processor despite the availability of resources. These can be resolved by MAKING the software program more efficient so that it can use available resources efficiently.
  • Disk Usage: The slowest component in a server is long-term storage units like SSDs or HDDs that are unavoidable. The fastest long-term storage units have physical limits which makes it difficult for the programmers to troubleshoot such issues. These can be fixed by increasing RAM caching rates, reducing fragmentation issues or by addressing insufficient bandwidth by switching to faster storage units.

The key to fixing all the bottlenecks are by pinpointing the root cause of the system degradation and then by fixing the code or by adding additional hardware resources depending on the causes.

15.

What are some of the commonly available tools for performance testing?

Answer»

There are so many tools available for ACCOMPLISHING performance testing, GUI testing, test management, load testing, functional testing etc. Among various tools, the FOLLOWING are the most commonly used tools for performance testing:

  • QALoad: This tool is used to perform load tests of web APPLICATIONS, databases and char-based management systems.
  • LoadRunner: This tool is used to test web applications by using a wide range of platforms and ENVIRONMENTS. This is used for getting the performance metrics of every component to identify the bottlenecks.
  • WebLOAD (Radview): This is another tool for running performance and load tests and also comparing the test metrics.
  • Silk performer: This tool is used for predicting behaviour in terms of complexity and size of e-business before deploying the application.
  • Rational performance tester (IBM): This tool was developed by IBM and is used to perform automated performance testing of the server and web-based applications.
  • JMeter: JMeter is a Java-based open source performance testing tool that can be used to test both static and dynamic web applications and resources. It is used for SIMULATING heavy server load for testing the strength and analyzing overall performance under varying load.
  • Flood.io: This is another load testing tool that is used for executing globally distributed tests on performance from different tools like Selenium, JMeter etc.
16.

What do you understand by Performance Testing?

Answer»

Performance Testing is a category of software testing that ensures the application performs well under any workload. This type of testing is not DONE to identify bugs in the application. Its main intention is to eliminate performance issues and bottlenecks by measuring the performance quality attributes of the system. 

The following image represents the performance attributes of any system:

  • Speed – This determines how fast an application responds to any request.
  • Scalability – This determines what is the maximum user LOAD an application can handle.
  • Stability – This determines if an application is stable under differing loads.
  • Reliability - This determines if an application is consistent under DIFFERENT environmental CONDITIONS at a specific PERIOD.