Knowledge:
The software is divided into two parts: Data and program. Data includes keyboard input, mouse click, disk file, print output, etc. A program is an executable process, conversion, logic, and operation. The most common method for testing is to divide the test in the same way.
I. Four Methods of software testing
Common Software Testing Methods include black box testing, white box testing, static testing, and dynamic testing.
Let's take a brief look at their respective meanings:
Black box testing
Also known as functional testing or behavior testing, the program interface is used for testing without considering the internal structure and characteristics of the program. It only checks whether the program functions are normally used according to the requirements specification, and whether the program can properly receive input data to generate correct output information. Black box testing focuses on the external structure of the program, without considering the internal logic structure. It mainly tests the software interface and software functions.
White box testing
Also known as transparent box testing, structure testing, or logic-driven testing, is based on the internal structure testing program of the program, through testing to detect whether the internal actions of the product are normal in accordance with the provisions of the design specification, check whether each path in the program works properly according to the predefined requirements, that is, you can see inside the box.
Static Test
It refers to the part where the test is not run, but only for detection and review.
Dynamic Testing
Testing, using, and running software in the general sense.
2. Four tests after crossover
However, black and white box tests and static and dynamic tests sometimes overlap. To make it easier for us to clearly understand and better test, we can combine them into four categories.
Static black box testing
As the name implies, static black box testing refers to testing when the software is not running and the internal structure of the software is invisible. For example, test the product manual. Do not be limited to think that software testing can only test the software. What is closely related to the software also requires our software testers to test the software. For example, the product manual is very important. It involves issues such as the customer experience when your software is just put into operation. Do not underestimate the product manual. If you have tested the manual, it can clearly explain your individual abilities.
Dynamic black box testing
It refers to testing when the software is running but does not know the internal structure of the software. This involves many black box testing techniques, such as division of equivalence classes and selection of boundary values.
At this time, we can start testing, data, and programs from two aspects. Data Testing has a lot of knowledge and details. I will not elaborate on it here. Then there is the program test, which can be tested based on the state chart conversion.
In many cases, the software tester represents the interests of the customer. Therefore, during the test, we can change our positions and use ourselves as the customer for testing.
Static white box testing
It refers to the process of reviewing software design, architecture, and code in a systematic manner without executing software to identify Software defects, which is sometimes referred to as structured analysis. This test will be very beneficial to the entire project at the initial stage of development. This test requires a lot of preparation work, so for our more effective testing, we now have a lot of commercial software that can automatically execute a lot of static white box testing work, that is, static analysis programs.
Dynamic white box testing
It refers to the use of information obtained by viewing code functions and implementation methods to determine which tests are required, which are not tested, and how to conduct tests. The differences between dynamic white box testing and debugging are needed here. These two items are technically similar (both include the process of Processing Software defects and viewing code), but their goals are very different. The purpose of Dynamic black box testing is to find Software defects. The purpose of debugging is to repair the defects.
Here we also involve unit testing and integration testing. Sometimes, to make the test more comprehensive, We need to execute every condition, statement, and sometimes even all the code of the program. At this time, we recommend that you do a good job of test cases and then use tools for testing (such as code overwrite analyzer ).
Summary:
After reading so many things, it's boring. I 've been telling you some basic things. How can it be interesting to learn without thinking with me? So here is a small question for everyone. There is no such standard answer. I hope everyone will express their own opinions and we will discuss it together!
Q: Why does understanding the internal structure of the software affect our testing ideas and methods?