Basic knowledge of testing 3 "" software testing process and process model

In the previous two articles, we have learned some basic knowledge points. Today we continue to understand the software testing process. The software testing process can be said to be a corresponding task formed following the software development phase.

 

The software testing process is an abstract model used to define the process and methods of software testing. As we all know, the quality of the development process determines the quality of software testing. Similarly, the quality of the testing process will directly affect the accuracy and validity of the test results. The software testing process, like the software development process, follows the principles of software engineering and management.

 

The software testing process can be divided into the following steps: unit testing, integration testing, confirmation testing, system testing and acceptance testing. As shown below

The unit test is mainly to complete the test task of each unit separately to ensure that each module can work normally.

Integration testing is to assemble the tested modules and perform integration testing. Its purpose is to check the program structure problems related to software design. At this time, black box testing methods are often used to design test cases.

The verification test is mainly to verify the verification criteria specified at the beginning of the development work after the integration test is completed.

The system test is aimed at after the completion of the confirmation test, the software product should be qualified, but in order to check whether it can work with other parts of the system (such as hardware, database and operators), it needs to be tested; strictly speaking , System testing has gone beyond the scope of software engineering.

Acceptance testing is the last process to verify the quality of software products. The difference from the various testing activities discussed above is that it highlights the role of customers, and software developers should also have a certain degree of participation.

In fact, these tests were outlined in the previous blog, but now they are combined with graphics to learn more profound and vivid.

 

Process model of software testing

V model: The V model is the most representative test model. It was first proposed by Paul Rook in the late 1980s. The V model was published in the British National Computer Center literature to improve the efficiency of software development.

 

In traditional development models, such as the waterfall model, people usually regard the testing process as a stage after the requirements analysis, outline design, detailed design and coding are all completed. Although sometimes the testing work takes up half of the entire project cycle, some people Still think that the test is just a finishing touch, not the main process. The introduction of the V model is an improvement of this understanding, and the V model is a variant of the software development waterfall model.

 

The software testing strategy of the V model includes both low-level testing and high-level testing. The low-level test is to verify the correctness of the source code, and the high-level test is to satisfy the user's needs for the entire system.

 

V model has certain limitations, it only regards the testing process as a stage after requirements analysis, outline design, detailed design and coding. It is easy to make people understand that testing is the last stage of software development, mainly for program testing to find errors, and the hidden problems in the requirements analysis stage are not discovered until the later acceptance test.

 

Establishment of W model

The limitation of the V model is that it does not clearly state the early test and cannot reflect the principle of "software testing as early as possible and continuously." Based on this principle, the testing activities in the software requirements and design phases should follow the principles of the IEEE standard, so the W model of the two V principles came out.

 

The W model is proposed by Evolutif. Compared with the V model, the W model is more scientific. The W model can be said to be a natural development of the V model. It emphasizes that: testing is accompanied by the entire software development cycle, and the object of testing is not only the program, but also the requirements, functions, and designs . In this way, as long as the corresponding development activities are completed, we can begin to perform the test. It can be said that testing and development are carried out simultaneously, which is conducive to early detection of problems. Take requirements as an example. Once the requirements analysis is completed, we can test the requirements instead of waiting for the final acceptance test.

 

Similarly, the W model has limitations. Both the W model and the V model regard software development as a series of serial activities such as requirements, design, and coding. Similarly, software development and testing maintain a linear relationship, requiring strict instructions to indicate that the previous stage is completely over before the next stage can be officially started. This makes it impossible to support iteration, spontaneity, and adjustment of changes.

H model: Although software development expects to have clear requirements, design and coding stages, practice tells us that strict stage division is just an ideal situation. Few projects start to design after having clear requirements. Therefore, there is no strict order relationship between the corresponding tests. At the same time, the test between each level also has the relationship of repeated triggers, iterations and increments. Secondly, neither the V model nor the W model can well reflect the integrity of the process.

 

In order to solve the above problems, some experts proposed the H model. It completely separates the test activities, forms a complete independent process, and clearly reflects the test preparation activities and test execution.

The other processes in the figure here can be any development process, such as the design process and coding process, or other non-development processes, such as the SQA process, or even the test process itself, that is, as long as the test conditions are mature, test preparation activities When finished, the test execution activities can be carried out.

 

X model: Because the V model has received many people's doubts, some people have put forward some different views and opinions. Here, I will introduce another test model, the X model, whose goal is to make up for some of the defects of the V model.

 

The left side of the X model describes the separate coding and testing of individual program fragments. After that, frequent handovers will be carried out, and the executable program will be finally synthesized through integration. The upper right of the figure can be reflected, and these can be execution program required for measuring test, has passed the integration testing can be finished sealing plate and presented to the user, may be integrated as part of a larger scale and in range.


At the same time, the X model also locates exploratory testing, which is a special type of test that is not planned in advance, such as, "I test this way, what will the result be?" This method can often help experienced testers in the test plan. In addition, more software errors were found.

The above is the basic theoretical knowledge and is treated as an understanding level.

Guess you like

Origin blog.csdn.net/Yorkie_Lin/article/details/79419733