Black box test: The functional design specifications of a known product can be tested to verify that each implemented function meets the requirements.
White Box testing: The internal working process of a known product can be tested to prove that each internal operation complies with the design specifications and that all internal components are inspected.
The black box test of the software means that the test should be done at the interface of the software. This method is to see the test object as a black box, the tester does not consider the internal logic structure and internal characteristics of the program, only according to the requirements of the program specification, check the function of the program is consistent with its function description. So black-box testing is also called functional testing or data-driven testing. The black box test is mainly to find the following types of errors:
1. Are there any features that are incorrect or missing?
2, on the interface, the input can be correctly accepted? Can I output the correct results?
3. Are there any data structure errors or external information (such as data file) access errors?
4, performance can meet the requirements?
5. Are there any initialization or termination errors?
The software's white-box test is a detailed examination of the procedural details of the software. This approach is to think of the test object as an open box, which allows the tester to design or select test Cases and test all the logical paths of the program, using the logical structure within the program and related information. Determine whether the actual state is consistent with the expected state by checking the program state at different points. So white-box testing is also known as structural testing or logic-driven testing. White box testing is mainly to the program module to check the following:
1, test all the independent execution path of the program module at least once.
2, to all the logical judgment, take "true" and take "false" two cases can be measured at least once.
3. The loop body is executed within the boundaries of the loop and the boundary of the operation.
4, test the effectiveness of internal data structure, and so on.
Unit Testing (module testing) is a small piece of code written by a developer to verify that a small, well-defined function of the code being tested is correct. Typically, a unit test is used to determine the behavior of a particular function under a particular condition (or scenario).
Unit testing is done by the programmer himself, and ultimately the programmer himself. It can be said that programmers have the responsibility to write functional code, but also have the responsibility for their own code to write unit tests. Performing unit tests is to prove that the code behaves as we expect it to.
Integration testing (also called assembly testing, joint testing) is a logical extension of unit testing. Its simplest form is: Two tested units are assembled into one component, and the interfaces between them are tested. In this sense, a component refers to an integrated aggregation of multiple cells. In a real-world scenario, many units are assembled into components that are then assembled into a larger part of the program. The method is to test the combination of fragments and eventually extend the process to test your module with the other group's modules. Finally, all modules that make up the process are tested together.
The system test is to assemble the tested subsystem into a complete system for testing. It is an effective method for verifying that the system is indeed able to provide the specified function in the system scheme specification. (Common test of joint adjustment)
The purpose of the system testing is to thoroughly test the final software system to ensure that the final software system meets the product requirements and follows the system design.
The acceptance test is the last Test action before the software is deployed. The purpose of the acceptance test is to ensure that the software is ready and that it can be used by end users to perform the established functions and tasks of the software.
Acceptance testing is to show future users that the system can work as expected. After integration testing, has been designed to assemble all the modules into a complete software system, interface errors have been basically excluded, and then should further verify the effectiveness of the software, which is the task of acceptance testing, that is, the function and performance of the software as the user reasonably expect.
Difference and connection between black box test, white box test, Unit test, integration test, System test, acceptance test