Comparison of unit testing, integration testing, regression testing, system testing, acceptance testing, etc.

Unit testing, English is Unit Testing.

Unit testing is testing at the tiniest scale; to test a certain function or block of code. Typically done by programmers rather than testers, since it requires detailed knowledge of internal programming and coding. This is not an easy job to do well unless the application system has a well-designed architecture; it may also be necessary to develop a test driver module or test suite.

 

Integration testing, English is Integration Testing.

Integration testing refers to the joint testing of various components of an application system to determine whether they can work together without conflict. A component can be a block of code, a stand-alone application, or a client or server program on a network. This type of testing is especially relevant to client-server and distributed systems. Before general integration testing, unit testing needs to be done.

Integration tests are a logical extension of unit tests. In its simplest form, two tested units are combined into a component and the interface between them is tested. In this sense, a component refers to the integrated aggregation of multiple units. In a real-world program, many units are combined into components, and these components are aggregated into larger parts of the program. The approach is to test combinations of fragments, and eventually extend the process, to test your module with other groups of modules. Finally, all the modules that make up the process are tested together. Also, if the program consists of multiple processes, they should be tested in pairs, not all processes at the same time.

Problems that arise when integration tests identify composition units. By using a test plan that requires testing each unit before combining the units and ensuring the viability of each unit, you know that any bugs found while combining the units are likely to be related to the interfaces between the units. This approach reduces the number of possible situations to a simpler analysis level.

 

Regression testing, English is Regression testing.

Regression testing refers to retesting previous tests after modification to ensure the correctness of the modification. In theory, whenever a new version of the software is produced, regression testing is required to verify whether the previously discovered and fixed bugs reappear in the new software version.

Re-test based on the repaired defects. The purpose of regression testing is to verify that bugs that have been fixed before do not reappear. It generally refers to retesting a known corrected defect around the steps when it originally appeared. It is often difficult to determine the extent of retesting required, especially as the product release date approaches. Because it is necessary to change the source code in order to fix a defect, it is possible to affect the functions controlled by this part of the source code. Therefore, when verifying the repaired defect, it is not only necessary to retest according to the steps when the defect originally appeared, but also to test all functions that may be affected. Automated testing for all regression test cases should therefore be encouraged.

 

System testing, English is System Testing.

System testing is a black-box test based on the overall requirements specification of the system, and should cover all joint components of the system. System testing is a test for the entire product system. The purpose is to verify whether the system meets the definition of the requirement specification, and to find out the places that do not meet or contradict the requirement specification.

The object of system testing includes not only the software of the product system to be tested, but also the hardware, peripherals and even some data, some supporting software and its interfaces that the software depends on. Therefore, the software in the system must be combined with various dependent resources and tested in the actual operating environment of the system.

 

Acceptance testing, English is Acceptance testing.

Acceptance testing refers to a phase of a system development life cycle methodology when the system is tested and accepted by relevant users or independent testers based on the test plan and results. It lets the system user decide whether to accept the system. It is a test to determine whether the product can meet the requirements specified by the contract or the user.

 

There are generally three strategies for acceptance testing: formal acceptance, informal acceptance or Alpha testing, and Beta testing.

Transferred from: Comparison of unit testing, integration testing, regression testing, system testing, acceptance testing, etc.

Guess you like

Origin blog.csdn.net/qq_21514303/article/details/89532114