Introduction to Performance Testing and Its Types

Tudip

30 March 2019

What is Performance Testing?

Performance Testing is termed as a type of software testing to ensure that software applications will perform well under their expected workload. Features and functionality supported by a software system is not the only concern to deliver a software. Application should be able to bear the load of multiple users log in at the same time. If the load increases in following conditions like response time, feasibility, resource usability and scalability matters. The goal of Performance Testing is not only to find bugs but to eliminate performance bottlenecks. Here you will get information about Performance testing process, types and tools.

Attributes of Performance Testing

  1. Speed

    It shows whether the software responses quickly in all conditions.

  2. Scalability

    How much load the software can handle when multiple user performing operations with the software for a particular time period.

  3. Stability

    It helps to know that the software is stable under the fluctuating loads.

  4. Reliability

    It checks whether the software can perform a fault-free task for a given period of time in a specified environment.

Performance Testing Process

Following steps are performed in the performance testing:

  1. Requirements Gathering & Analysis

    Requirement gathering & Analysis is the first and the most important phase in testing. In this phase, the collection of all the information about the application from the client and other stakeholders takes place. The key questions asked from the stakeholders are:

    • Details of the application architecture and design
    • The anticipated concurrent user load
    • Any performance benchmarks or performance acceptance criteria
    • The knowledge of high-performance critical workflows
  2. Testing Tool Selection

    There are different types of performance test tool. But we should know which type of testing tool we need and how to select it.

    Application type and design:

    One of the primary things to consider while selecting a tool is the type and design of the application. Ex. for performance testing of web service we may decide selecting a tool LoadUI which is a custom tool for load testing of SOAP web service.

    Project Estimate:

    Based on the estimate suggested for performance testing, we need to select between free tools and different licensed tools.

    Tool Specific Requirement:

    The given requirements of a performance test are also considered while choosing a test tool, for example, there may be a task of performing load test with a number of users, few available tools do not effectively handle this much load. So, a tool should be capable of efficiently handling the load that gets selected for testing.

    Expertise required for scripting:

    The expert QA also helps to select the test tool for performance testing.

  3. Performance Test Planning

    The test planning phase includes the blueprint of the whole performance testing process. The major steps performed in this phase are:

    1. Performance test model and environment setup
    2. use case scenarios to be scripted
    3. total user load to be simulated
    4. Identifying the test configuration like duration, the number of user distribution between different scenarios, etc.
    5. Understanding of the test result metrics, using different listeners for gathering and analyzing the test results
  4. Test Script Implementation

    In this phase, we have to write a test script using the tool selected in the previous phase for the performance test. The two major things performed during this phase are:

    1. Writing of test script based on the scenarios listed down in the planning phase
    2. Performance test data creation for different scenarios
  5. Test Execution

    The test script is executed for a predefined time mentioned during the planning phase. At the same time, progress is interrogated along with the different aspects of the server like CPU usage, memory consumption, etc.

  6. Test Result Analysis

    This phase includes the result analysis. It combines the test scenarios for summarizing the different performance attributes of the application and finding the performance queue. This test results information about the application state is shared with all the relevant stakeholders.

Types of Performance Testing

  1. Load testing

    It is the simplest form of testing manages to understand the performance of the system under a specific load. This testing result in measuring important business critical transactions and load on the database, application server, etc.are also examined.

  2. Stress testing

    It is used to find the highest limit capacity of the system and also to determine how the system works when the current load goes up and above the expected.

  3. Soak testing

    Soak Testing also called as endurance testing. It is conducted to determine the system parameters under the continuous expected load. During this test, the parameters such as memory utilization are detected or other performance problem. The main point is to discover the system’s performance under sustained use.

  4. Spike testing

    Spike testing is performed when there is an increase in the number of users suddenly by a very large amount and measuring the performance of the system. The main point is to determine whether the system will be able to sustain the workload.

Which tool is best for performance testing?

There are various performance testing tools. Some of the best tools are listed below:

  1. Google Page Speed Insights

    This tool provides both mobile and desktop testing. Most of the people consume content on mobile devices, so make sure your site is mobile ready.

  2. Test My Site

    This tool only provides desktop testing. By using this tool we can identify the speed of the application and can increase the performance of the web application. (https://www.thinkwithgoogle.com/feature/testmysite)

  3. Apache JMeter

    Open source load testing tool: It is a platform application by Java. It is mainly defined as a performance testing tool and it can also be combined with the test plan. Additionally to the load test plan, we can create a functional test plan. This tool has the wavelength to be loaded into a server so as to decide on its performance and analyze its working under different scenarios. Basically, it was explained for testing the web applications, but later on, its scope had extended. It is of superb use in testing the functional performance of the resources such as Servlets, Perl Scripts and JAVA objects. Required JVM 1.4 or higher to run.

  4. Micro Focus LoadRunner

    Micro Focus product is used as a performance testing tool. Also, it is very useful in understanding and regulating the performance and outcome of the system when there is an actual load. One of the important features of this tool is that it will create and handle thousands of users at the same moment. This tool allows you to get all the required details with respect to the performance and also based on the infrastructure. The LoadRunner contains different tools; which is, Virtual User Generator, Controller, Load Generator and Analyzer.

Read more about How to Do Load Testing Using Selenium & JMeter?

Request a quote