Performance Testing in Software Testing



Performance testing is a non-functional testing methodology that is used in software testing. It is used to ensure that software applications will perform well under their expected workload.


A software application's performance like its response time, reliability, resource usage, and scalability do matter. The goal of Performance Testing is not to find bugs but to eliminate performance bottlenecks


Mainly there are three factors we should concern when doing a performance test.

  • Speed 
    • Determines whether the application responds quickly
  • Scalability 
    • Determines the maximum user load the software application can handle.
  • Stability 
    • Determines if the application is stable under varying loads
Why we need performance testing?




Performance Testing is done to provide stakeholders with information about their application regarding speed, stability, and scalability. More importantly, Performance Testing uncovers what needs to be improved before the product goes to market.
Without Performance Testing, software is likely to suffer from issues such as: 
  • Running slow while several users use it simultaneously
  • Inconsistencies across different operating systems 
  • Poor usability.
Performance testing will determine whether their software meets speed, scalability and stability requirements under expected workloads. Applications sent to the market with poor performance metrics due to nonexistent or poor performance testing are likely to gain a bad reputation and fail to meet expected sales goals.

Types of performance testing




1. Load Testing
    
It is the simplest form of testing conducted to understand the behaviour of the system under a specific load. The objective is to identify performance bottlenecks before the software application goes live.  It will check the application's ability to perform under anticipated user loads.


So Load testing will result in measuring important business-critical transactions and load on the database, application server, etc., are also monitored.


2. Stress Testing

The objective is to identify the breaking point of an application. Performed to find the upper limit capacity of the system and also to determine how the system performs if the current load goes well above the expected maximum.



3. Soak Testing / Endurance Testing


Done to make sure the software can handle the expected load over a long period of time. During soak tests the parameters such as memory utilization is monitored to detect memory leaks or other performance issues. The main aim is to discover the system's performance under sustained use.

4. Spike Testing

 Spike testing is performed by increasing the number of users suddenly by a very large amount and measuring the performance of the system.
 The main aim is to determine whether the system will be able to sustain the workload.



5. Volume Testing

Under Volume Testing large no. of. Data is populated in a database and the overall software system's behavior is monitored. The objective is to check the software application's performance under varying database volumes.


Performance Test Process

The methodology adopted for performance testing can vary widely but the objective for performance tests remains the same. It can help demonstrate that your software system meets certain pre-defined performance criteria.

Below is a generic process on how to perform performance testing



1. Identify test environment 
  • Know your physical test environment, production environment and what testing tools are available. 
  • Understand details of the hardware, software and network configurations used during testing before you begin the testing process.
    •  It will help testers create more efficient tests.  It will also help identify possible challenges that testers may encounter during the performance testing procedures.

2. Identify the performance acceptance criteria
  • This includes goals and constraints for throughput, response times and resource allocation. 
  • Identify project success criteria outside of these goals and constraints.
  • Testers should be empowered to set performance criteria and goals because often the project specifications will not include a wide enough variety of performance benchmarks. 


3. Plan & design performance tests.
  • Determine how usage is likely to vary amongst end-users and identify key scenarios to test for all possible use cases.
  •  It is necessary to simulate a variety of end-users, plan performance test data and outline what metrics will be gathered.
4. Configuring the test environment.
  • Prepare the testing environment before execution. Also, arrange tools and other resources.
5. Implement a test design.
  • Create the performance tests according to your test design.
6. Run the tests.
  • Execute and monitor the tests.
7. Analyze, tune and retest.
  • Analyze and share test results. 

Performance Test Tools

1. JMeter



2. HP LoadRunner     

  • Most popular performance testing tools on the market today.
  • Capable of simulating hundreds of thousands of users, putting applications under real-life loads to determine their behavior under expected loads.
  • Features a virtual user generator that simulates the actions of live human users.
  •  http://www.hp.com/



3. Load Ninja
  • This cloud-based load testing tool empowers teams to record & instantly playback comprehensive load tests, without complex dynamic correlation & run these load tests in real browsers at scale. 
  • Teams are able to increase test coverage. & cut load testing time by over 60%.

In Software Engineering, Performance testing is necessary before marketing any software product. It ensures customer satisfaction & protects an investor's investment against product failure. 




Comments

  1. Granit Himalayan Blue is that the most loved Indian Granit within the USA, UK, Canada, Australia, Poland, Bulgaria, Romania, Greece, Russia, Ukraine, Malaysia. Throughout the world…stone buyers enquire to Indian Stone Suppliers, Indian Stone Exporters, and Indian Stone Manufacturers regarding this beautiful Himalayan Blue Granite.
    Best Granite In India

    ReplyDelete
  2. Wonderful blog about Software Testing Services in Chennai to read and further more tips on the Software Testing Services in India have been learnt. It's great time spending on this. I am waiting for new post here about Software Testing Companies in Bangalore and Please keep it up in future..

    Consult today to - Software Testing Services in Mumbai

    ReplyDelete

Post a Comment

Popular posts from this blog

ස්ටීවන් හෝකින් (Stephen Hawking)

Why Functional testing?