Software performance testing is the practice of determining whether a given application has the capacity to perform in terms of scalability and responsiveness under a specified workload. Responsiveness refers to the ability of a given application to meet pre-determined objectives for throughput, while scalability is the number of activities processed within a given time. Performing this type of testing is a key factor when ascertaining the quality of a given application.
When Should You Use Performance Testing?
Software performance testing is done to serve three main purposes. First, testing is done to determine whether the application meets the specified performance criteria. For example, a performance criteria may specify that an application must be able to handle 500 concurrent users. Secondly, it compares two or more applications with the objective of determining which one can perform better. For instance, say your application needs a tool to export reports. You can compare tools to see which tool’s performance can best handle the export requirements. Lastly, performance testing is done to measure the parts or configuration of a given application that are responsible for the poor performance of the application. A common example of this would be insufficient memory leading to performance bottlenecks.
Goals of Performance Testing
The entire process of software performance testing is done to accomplish a set of four goals:
- To determine the throughput or the rate of transaction.
- To determine the server response time, which is the time taken by a given application node to give a response to a request made by another node.
- To determine the response time of the render, which requires the inclusion of functional test scripts in the test scenario.
- To determine the performance specifications and document them in the test plan.
The Types of Software Performance Tests
There are six major types of software performance testing which include load, stress, soak, spike, configuration, and isolation tests.
Load Tests
Load testing is used to study the behavior of the application under specified loads. It also shows how an application will function when the majority of its users are logged in. Load testing is mainly done to measure response times, resource utilization levels, and throughput rates.
Stress Tests
A stress test is performed to determine the upper limit of the application capacity and how the application performs when the current load exceeds the expected maximum. The primary focus of performing testing is to identify application bugs that occur in high load conditions. This test determines the maximum load that a given application can support.
Soak Tests
Soak tests are performed with the objective of determining how the application endures under a continuous expected load. For example, a soak test can be performed to monitor memory utilization and detect memory leaks and other performance problems that can occur. The objective of performing this type of test is to determine the application’s performance in sustained use.
Spike Tests
Spike testing is performed to determine whether a given application has the capacity to sustain the workload. The test is accomplished by increasing the number of end-users by a large amount and assessing the performance of the application overall.
Configuration and Isolation Tests
While Microsoft states that configuration and isolation testing are useful, performing these tests is typically uncommon. Configuration testing is performed to determine the impacts of configuration changes to components of the application on the application’s behavior and performance. Isolation testing is performed to isolate the fault domain.
Using External Resources for Performance Testing
Setting up the environment for performance testing for various applications (web, desktop, mobile) can be time consuming and expensive. We decided to use Neustar’s Web performance service for our testing needs. Please read this case study to learn more about our decision to use Neustar and our experience working with them.
The quality of your website performance is important. People will visit a website less often if it is slower than a close competitor by more than 250 milliseconds (NYTIMES). When you are accessing the quality of your application, be sure to include how well it performs. Your web application’s performance could be the factor that draws a customer to your services instead of a competitor’s.