Testers must see: Five dimensions to interpret software testing classification

There are many types of software testing methods, and they are very confusing to remember. If software testing methods are classified in multiple dimensions, it will be much clearer.

Insert picture description here

Classification of software testing-by development stage

unit test

Also known as module testing, it is a test for correctness checking for the smallest unit in software design-program modules. Unit testing needs to design test cases from the internal structure of the program. Multiple modules can be unit tested independently in parallel.

Unit definition: C refers to a function, Java refers to a class, in graphical software, a unit generally refers to a window, a menu.

Integration Testing

It is also called assembly test, usually on the basis of unit test, all program modules are tested in an orderly and incremental manner. Focus on testing the interface parts of different modules.

System test

Refers to testing the entire software system as a whole, including testing the function, performance, and software and hardware environment in which the software runs.

System testing is performed after the system integration is completed. In the early stage, it mainly tests whether the function of the system meets the requirements, and in the later stage, it mainly tests whether the performance of the system meets the requirements, and the compatibility of the system in different software and hardware environments.

Classification of software testing-classification of acceptance testing

alpha test

· Alpha is the internal beta version, which is now called CB.

· This version means that the software is only a preliminary finished product, usually only for internal communication among software developers, and a small part of it is released to professional testers.

· Generally speaking, this version of the software has many bugs, and it is best not to install it for ordinary users.

beta test

· Beta is a public beta version, a test version open to all users.

· Compared with the α version, this version has been greatly improved, and serious errors have been eliminated, but there are still some defects, which need to be further eliminated by large-scale release testing.

· This version is usually released by software companies for free, and users can download it from related sites.

· Through some professional hobbyists' tests, the results will be fed back to the developers, who then make targeted modifications.

· This version is not suitable for general users to install.

γTest

Gamma version refers to the candidate version of the software version officially released. This version is quite mature, and it is almost the same as the official version to be released soon, and becomes the candidate version for official release.

Several versions before the official version of the software are released, somebody needs to test them to see if there are any problems. In the company that developed the software, the internal testing of the company is called: Alpha test. Alpha test mainly depends on whether there are any missing functions or system errors. After the Alpha test, there will generally be no major problems. Then the software is presented to the user for testing, called beta testing, which mainly depends on the user's response to the appearance and ease of use of the software. On the one hand, so many test versions are designed to meet the needs of users as much as possible for the final product, and on the other hand, it also minimizes bugs in the software. Then it made some changes, and when it became the official release candidate version, it was called gamma (now called RC-Release Candidate).

To put it simply, alpha testing is mainly a test conducted by testers in a development environment, and beta testing is a test conducted in a real environment, or a test conducted by a company's internal personnel in a simulated real environment.

Classification of software testing-according to whether to view the source code

Black box testing

Also known as data-driven testing, it does not consider the internal structure and internal characteristics of the program at all, focuses on the functional requirements of the test software, and only cares about the input data and output data of the software.

White box testing

· Refers to opening the box to study the source code and program structure inside.

· In software companies, a combination of black box testing & white box testing is often used.

· Black box testing of the overall functions and performance of the software

· The source code of the software adopts white box testing

Gray box testing

Gray-box testing is a test between white-box testing and black-box testing. Gray-box testing is mostly used in the integration testing stage, not only focusing on the correctness of output and input, but also on the internal conditions of the program. Gray box testing is not as detailed and complete as white box testing, but it pays more attention to the internal logic of the program than black box testing. It often judges the internal running status through some representative phenomena, events, and signs.

Classification of software testing-black box testing classification

function test

It is one aspect of black box testing, which checks whether the functions of the actual software meet the needs of users.

· Logic function testing (functiontesting)

· Interface Testing (UItesting)

· Usability testing

· Installation testing (installationtesting)

Performance Testing

It is the high-end field of software testing. The remuneration of performance test engineers is comparable to that of white box test engineers. Usually, what we call senior software test engineers generally refers to performance test or white box test engineers.

· Time performance (transaction response time, etc.)

· Space performance (system resource consumption)

· General performance test

· Stability test

· Load test: Through load test to determine the changes in various performance indicators of the system under various workloads

· Stress test: to obtain the maximum service level that the system can provide by determining the bottleneck of a system or just unacceptable performance points

Classification of software testing-according to whether to run or not

Static test

Refers to the process of not actually running the software under test, but statically checking the program code, interface or documentation for possible errors.

dynamics test

Refers to the process of actually running the program under test, inputting the corresponding test data, and checking whether the actual output results are consistent with the expected results.

Classification of Software Testing-Other

Smoke test

The smoke test is to test the most basic functions of the version after the development of a new version is completed to ensure that the basic functions and processes can go through. If it does not pass, it will return to the development side to re-develop; if it passes the test, the next test (functional test, integration test, system test, etc.) will be carried out. The advantage of smoke test is to save test time and prevent build failure. The disadvantage is that the coverage rate is still relatively low.

Regression Testing

I have two levels of understanding of regression testing. One is that after you fix a bug, apply the previous test cases to the repaired version again for testing. Second, when a new version is developed and the smoke test passes, you can use the test cases of the previous version to test the new version first to see if there are bugs.

Random test

Random testing is mainly to retest some important functions of the software under test, and also include testing those parts that are not covered by the current test cases. In addition, focus on testing for software updates and newly added features. Focus on some special points, special use environment, concurrency, and check. Especially for major bugs found in previous tests, re-testing can be performed in conjunction with regression testing (Regressive testing).

Exploratory test

Exploratory testing can be said to be a testing thinking technique. It does not have many practical testing methods, techniques and tools, but it is a testing thinking mode that all testers should master. Exploratory emphasizes the subjective initiative of testers, discards complicated test plans and test case design processes, and emphasizes timely change of test strategies when problems are encountered.

Exploratory testing emphasizes the simultaneity of test design and test execution, which is relative to the strict "design first, then execute" in the traditional software testing process. Testers continue to learn about the system under test through testing, and at the same time, through comprehensive collation and analysis of the more information they have learned about the software system, they can create more ideas about testing.

Guess you like

Origin blog.csdn.net/newdreamIT/article/details/100740451