Below we mainly introduce performance test , load test and stress test .
Efficiency as one of the important quality attributes of the internal and external quality of ISO 9126, which means that, under specified conditions, the SOFTWARE product provides the ability to provide the appropriate performance relative to the amount of resources used. Resources may include software and hardware configurations for other software products or systems, as well as other related resources (e.g. paper, disk, etc.).
Efficiency Testing focuses on the product's time and resource-related characteristics. Time-related features are the ability to provide the appropriate response and processing time and throughput when a software product performs its functions under prescribed conditions, such as the amount of time a user has to wait to open a Web page, and resource-related features that allow the ability of a software product to use the appropriate number and category of resources when performing its functions under specified conditions. , for example: the memory and CPU changes of the system when the user is doing the related operation.
Depending on the time and resource characteristics of the product, the efficiency test can include different test types, such as: Performance Test (performance test), load Test , and stress test (Stress Test). These three types of efficiency tests not only have different emphases on the specific definition, but also are closely related to each other.
1) Performance test
Performance testing primarily evaluates whether the performance of a system or component is consistent with specific performance requirements, such as the performance requirements for access speed or the need for memory usage. The focus of a particular performance test is the ability of a component or system to respond to user or system input within a specified time and under specific conditions.
The measurement of different performance depends on the different objects being measured. For a single software component, its performance can be determined by CPU frequency. The performance of the system with the client is determined according to the response time of the system to handle the specific user request. For systems that consist of multiple components, such as clients, servers, and databases, performance tests are performed between the components.
The performance of the product has a significant impact on whether the user will continue to use the product. Table 1 shows the distribution of attitudes that a user waits for at different times when accessing a separate page. As you can see, when the page load time is 10 seconds, 84% of the users are willing to wait, but when the page load time reaches 30 seconds, only 5% of the users are willing to wait.
Table 1 Users willing to wait time distribution
The data in table 1 takes into account the latency of the network. And if in the test environment, the whole network is the test system monopoly, the system performance requirements are much higher. For the time that is willing to wait, the scope of each user's tolerance is different, and the user is willing to accept the different waiting time is not the same. The following is a set of performance requirements descriptions for response time:
- For multimedia interaction system, the system response time should not exceed 0.1 seconds in 90% time;
- For an online system with only one task per user, the system response time should not exceed 0.5 seconds in 90% of the time;
- For each user with a multi-tasking online system, the system response time should be no more than 1 seconds in 90% of the time.
Performance testing is concerned with whether the performance of the system is consistent with the specific performance requirements, and the performance of the system is not the focus of the tester's attention when the performance requirements are exceeded.
For example: The performance requirements of the system should be supported by the maximum number of online users 5,000, then in the performance testing process to focus on testing the system can support 5,000 users simultaneously online; When 5,000 users are online, performance testing needs to focus on whether the entire system is running in accordance with the requirements And for more than 5000 online users, the performance behavior of the system is not a concern.
2) Load test
A load test is a test method that evaluates the performance of a component or system by increasing the load. For example, measure the load that a component or system can withstand by increasing the number of concurrent users and/or transactions. The main difference between a load test and a performance test is that when the load is tested, the system load is gradually increased rather than one step, and the load test needs to see if the system works properly under various load conditions.
is a Web site as the number of users increased, the corresponding response time is also increasing the trend graph. Shown in the specific trend 1.
Figure 1 Number of users and response time graphs in a site load test
By looking at Figure 1, you can see that as the number of users increases, the response time of the system increases. When the number of online users to 700, the system response time growth significantly faster. Of course, response time is only one of the data to be observed, and as the test load increases, it is necessary to observe the system resources and other occupation.
3) pressure test
A stress test is an assessment of how the system operates when the system is in or exceeds the expected load. The focus of stress testing is on the system's ability to handle peak loads or exceeding the maximum load. As the pressure level increases gradually, system performance should slow down as expected, but should not crash. The stress test also discovers the critical point of the system crash and discovers weaknesses in the system.
For example: The maximum number of simultaneous online users is 1000, and the stress test needs to test the performance of the system when 1000 users or even 2000 users are online simultaneously. While the load on the test has exceeded the design capability of the system, the test system should not crash in this case. Stress tests can also be tested against system resources, such as testing the system's operation in case of system memory exhaustion, which should not crash in the case of a test system.
The three efficiency test types of performance test, load test and stress test are described in the previous sections. Currently in the field of software testing, the definition of these three types of tests is not uniform. In the actual testing work, the term performance test is widely used. In many cases, performance testing is a generic term for the above three types of tests, and in some books or references, the scope of performance testing is even wider.
Performance test vs load test vs stress Test