• Steps of Performance Testing. Source:https://loadstorm.com/2014/04/steps-of-performance-testing/

Software Performance Testing

Improve this article. Show messages.


Performance testing helps identify bottlenecks in a system, establish a baseline for future testing, support a performance tuning effort, and determine compliance with performance goals and requirements.

Performance testing is an ongoing task throughout the life cycle of the project. It not only involves testers, but also developers and operations to run and maintain the application to its performance expectations.

Performance, load, and stress tests are subcategories of performance testing, each intended for a different purpose.


  • What is performance testing in software?

    Performance testing is a type of non-functional testing. It's intended to determine the responsiveness, throughput, reliability, and/or scalability of a system under a given workload.

    Performance testing is testing that is performed to determine how fast some aspect of a system performs under a particular workload. It can serve different purposes, such as to demonstrate that the system meets performance criteria.

  • What should be the focus of performance testing?

    Following are some focus areas for performance testing:

    • Speed: Determines whether the software application responds quickly.
    • Scalability: Determines maximum user load the software application can handle.
    • Stability: Determines if the application is stable under varying loads.
  • What are the common goals of performance testing?

    Performance testing has the following goals:

    • Assess production readiness
    • Evaluate against performance criteria
    • Compare performance characteristics of multiple systems or system configurations
    • Find the source of performance problems
    • Support system tuning
    • Find throughput levels
  • What are the types of performance testing?

    Each type of performance testing has a specific focus as noted below:

    • Load Testing: Checks the application's ability to perform under anticipated user loads. The objective is to identify performance bottlenecks before the software application goes live.
    • Stress Testing: Involves testing an application under extreme workloads to see how it handles high traffic or data processing. The objective is to identify breaking point of an application.
    • Endurance Testing: Done to make sure the software can handle the expected load over a long period of time.
    • Spike Testing: Tests the software's reaction to sudden large spikes in the load generated by users.
    • Volume Testing: Large amount of data is populated in database and the overall software system's behavior is monitored. The objective is to check software application's performance under varying database volumes.
    • Scalability Testing: Determine the software application's effectiveness in "scaling up" to support an increase in user load. It helps plan capacity addition to your software system.
  • What are the steps of performance testing?
    Steps of Performance Testing. Source:https://loadstorm.com/2014/04/steps-of-performance-testing/

    We may list the following steps:

    • Identify the Test Environment: Identify the physical test environment and the production environment, which includes the hardware, software, and network configurations.
    • Identify Performance Acceptance Criteria: Identify the response time, throughput, and resource utilization goals and constraints. In general, response time is a user concern, throughput is a business concern, and resource utilization is a system concern.
    • Plan and Design Tests: Identify key scenarios, determine variability among representative users such as unique login credentials and search terms.
    • Configure the Test Environment: Prepare the test environment, tools, and resources necessary to execute each strategy as features and components become available for test.
    • Implement the Test Design: Develop the performance tests in accordance with the test design best practice.
    • Execute the Test: Run and monitor your tests. Validate the tests, test data, and results collection.
    • Analyze Results, Report, and Retest: Consolidate and share results data. Analyze the data both individually and as a cross-functional team. Reprioritize the remaining tests and re-execute them as needed.
  • What performance parameters are monitored during performance testing?

    The following are commonly monitored:

    • Processor Usage: Amount of time processor spends executing non-idle threads.
    • Memory Use: Amount of physical memory available to processes on a computer.
    • Disk Time: Amount of time disk is busy executing a read or write request.
    • Bandwidth: Shows the bits per second used by a network interface.
    • Private Bytes: Number of bytes a process has allocated that can't be shared amongst other processes.
    • Memory Pages per Second: Number of pages written to or read from the disk in order to resolve hard page faults.
    • Page Faults per Second: Overall rate in which fault pages are processed by the processor.
    • Response Time: Time from when a user enters a request until the first character of the response is received.
    • Throughput: Rate a computer or network receives requests per second.
    • Maximum Active Sessions: Maximum number of sessions that can be active at once.
    • Hits per Second: Number of hits on a web server during each second of a load test.
    • Database Locks: Locking of tables and databases.
    • Thread Counts: Number of threads that are running and currently active.
  • Could you name a few performance testing tools?

    Some open source tools include Apache Jmeter, K6, LoadUI, and Grinder. Commercial tools requiring a license include HP LoadRunner, IBM Rational Performance Tester, and Microfocus SilkPerformer.

Sample Code

  • import http from "k6/http";
    import { sleep } from "k6";
    export let options = {
      vus: 10,
      duration: "30s"
    export default function() {


  1. AgileLoad. 2013. "Application performance testing." AgileLoad, February. Accessed 2018-06-29.
  2. Microsoft Docs. 2010. "Chapter 1 – Fundamentals of Web Application Performance Testing." Performance Testing Guidelines for Web Applications, Microsoft Docs, April 27.
  3. Murty, Srinivas. 2016. "Performance Testing in a Nutshell." Blog, ThoughtWorks, February 23. Accessed 2018-06-29.
  4. Odom, Phillip. 2014. "Steps of performance testing." Blog, Loadstorm, APRIL 29. Accessed 2014-04-29.
  5. guru99. 2018. "Performance Parameters Monitored." Blog, guru99.


See Also

  • Performance Testing in the Cloud
  • HTTP Performance Testing
  • Mobile App Performance Testing
  • Test Frameworks
  • A/B Testing
  • Cloud Load Balancing

Further Reading

  1. k6 Docs
  2. BlazeMeter, Why Load Testing
  3. AgileLoad, Application Performance Testing
  4. Jmeter, Get Started

Top Contributors

Last update: 2018-07-17 09:52:09 by arvindpdmn
Creation: 2018-06-19 17:57:04 by narendra

Article Stats


Cite As

Devopedia. 2018. "Software Performance Testing." Version 12, July 17. Accessed 2018-08-14. https://devopedia.org/software-performance-testing
BETA V0.16