Login | Join Free



What is performance and functional testing? What are the common performance testing methods?

Date:2021-09-13 11:21:00 Views:3414

Performance test generally refers to function test. It mainly tests the functions of the equipment and whether the fixed parameters meet the regulations. Performance test is to test various performance indexes of the system by simulating a variety of normal, peak and abnormal load conditions through automatic test tools. Both load test and stress test belong to performance test, which can be carried out in combination. Function test is to verify the functions of the product, test item by item according to the function test cases, and check whether the product meets the functions required by users.

Performance is an index that indicates the degree to which the software system or component meets its timeliness requirements; Secondly, performance is a characteristic of software products, which can be measured by time. The timeliness of performance is measured by response time or throughput. Response time is the time required for the server to respond to requests.Common performance test methods are as follows:


1. Load test

Here, load test refers to the most common performance test to verify general performance requirements. Above, we mentioned that the most common performance requirements of users are "horses should run and horses should eat less grass". Therefore, load testing is mainly to investigate the performance of software system under a given load. We can understand load testing as follows:

(1) Load testing is to observe the performance of software system under certain conditions from the perspective of users.

(2) The expected result of load test is that the performance requirements of users are met. This indicator is generally reflected in response time, transaction capacity, concurrent capacity, resource utilization, etc.

2. Pressure test

Stress testing is to investigate the performance of the system under extreme conditions, which can be overloaded transaction volume and the number of concurrent users. Note that this extreme condition is not necessarily the user's performance requirements, but may be much higher than the user's performance requirements. It can be understood that the difference between stress test and load test is that the expected result of stress test is that the system has problems, and what we want to examine is the way the system handles problems. For example, we expect a system to remain stable under pressure. The processing speed can slow down, but the system can't crash. Therefore, stress testing allows us to identify the weaknesses of the system and how the program will run under extreme load.

3. Concurrent testing

Verify the concurrent processing capability of the system. Generally, a large number of concurrent connections are established with the server. Whether the system has reached the established concurrency capability index is judged by the response time of the client and the performance monitoring of the server. Load testing often uses concurrency to create load. The reason why concurrent testing is proposed separately is that concurrent testing often involves the concurrency capacity of the server and the possible problems caused by multi process / multi thread coordination and synchronization. This is something that needs special attention and must be tested.

4. Benchmark test

When a new module is added to the software system, a benchmark needs to be done to judge the impact of the new module on the performance of the whole software system. According to the benchmark test method, it is necessary to open / close the new module at least once. Each performance index of the system before closing the module is recorded as a benchmark, and then compared with the system performance index in the open module state to judge the impact of the module on the system performance.

5. Stability test

"The road knows the horsepower". Here we want to talk about the stability test related to the performance test, that is, to test whether the system will have problems after running under a certain load for a long time. Some problems of software system can not be exposed at once, or it takes time to accumulate to a measurable degree. Why do you need such a test? Because some software problems will be exposed only after running for a day or a week or even longer. This problem is generally caused by the program occupying resources but not being released in time. For example, the memory leak problem becomes significant only after a period of accumulation, but it is difficult to detect it in the early stage of operation; In addition, after the load runs for a period of time, the client and server have established a large number of connection paths, but they can not be reused or released in time.

6. Recoverable test

Test whether the system can quickly recover from the error state to the normal state. For example, in a system with load balancing, whether the backup machine can quickly take over the load after the host cannot work normally under pressure. Recoverability testing is usually done in conjunction with stress testing.

Tip: each test has its own space and purpose. When we take over a software project and choose which test to do under the condition of limited resources, we should choose according to the current software process stage and the characteristics of the project. For example, benchmarking should be done during integration testing, and performance testing should be done at each release point of software products.

in general,System performance includes two dimensions: time and space. Time refers to the response time of customer operation business, and space refers to the consumption of system resources when the system executes client requests. Customers only pay attention to the performance of time. Customers do not pay attention to the performance problems caused by what causes them, but performance test engineers and system engineers must pay attention to the use of system resources.Performance test is to test the performance index of the system end-to-end (that is, the process in which the client sends a request and the server returns the information). At present, it is impossible to design a quantitative performance system in the system design stage, that is, the development engineer can not guarantee the performance of the designed system, or we have to rely on the test to verify the performance, Performance testing is a series of testing processes. Before the system is put into the market, the performance of the system must be tested, otherwise it is impossible to determine whether the performance of the system can meet the needs of customers.