software test

The process of running or measuring a software system by manual or automatic means
open 15 homonymous entries
Collection
zero Useful+1
zero
Software test (English: Software Testing )It is the process of using manual operation (manual test) or software automatic operation (automated test) to verify whether the software meets user requirements.
Chinese name
software test
Foreign name
software testing
Purpose
appraisal Audit software
Mode
manual operation Or the software runs automatically
job content
Verification and validation
Field
IT industry and industries with information management

Production process

Announce
edit
Software testing is accompanied by the emergence of software. In the early software development process, the software scale was very small and the complexity was low. The process of software development was disordered and quite random, and the meaning of testing was relatively narrow. Developers equated testing with "debugging", in order to correct known faults in the software, which was often completed by developers themselves. The investment in testing is very little, and the testing intervention is also late. Usually, the testing is not carried out until the code is formed and the product has been basically completed. By the early 1980s, the software and IT industry had entered a great development. The software tended to be large-scale and highly complex, and the quality of software became more and more important. At this time, some basic theories and practical technologies of software testing began to form, and people began to design various processes and management methods for software development. The way of software development gradually changed from a disorderly development process to a structured development process to Structured analysis It is characterized by design, structured review, structured program design and structured testing. People also integrate the concept of "quality" into it. The definition of software testing has changed. Testing is not only a process of finding errors, but also a main function of software quality assurance (SQA), including the content of software quality evaluation, Bill Hetzel pointed out in the Complete Guide of Software Testing that "testing is any activity aimed at evaluating a program or system property. Testing is a measure of software quality." This definition is still quoted. Software developers and testers began to sit together to discuss software engineering and testing issues.

Industry standards

Announce
edit
The industry standard (IEEE/ANSI) has been established for software testing. The definition of software testing in the software engineering terminology proposed by IEEE in 1983 is: "the process of running or measuring a software system by manual or automatic means, with the purpose of verifying whether it meets the specified requirements or clarifying the difference between the expected result and the actual result". This definition clearly points out that the purpose of software testing is to verify whether the software system meets the requirements. It is no longer a one-time activity, but only an activity in the later stage of development. It is integrated with the whole development process. Software testing has become a profession, which requires the use of specialized methods and means, as well as specialized talents and experts.

Test principles

Announce
edit
Before testing the computer software, it is necessary to follow the software testing principle, that is, the incomplete principle. Incomplete principle means that if the test is incomplete and there are many parts involving immunity principle in the test process, it can help software testing to a certain extent. Because software testing is immune to such factors to a certain extent, the testing content that testers can complete is in direct proportion to their immunity. If you want to make software testing more fluent and more effective, you need to first follow these principles, run them through the entire development process, and constantly test, rather than one-time full test.

test method

Announce
edit
1、 Static test method
software test
Static testing means the static analysis test of software code. In this process, there is less applied data. The main process is to test the correctness of calculation methods and algorithms in the program through the static test of software (i.e. manual inference or computer aided test), and then complete the test process. The advantage of this type of test is that it can consume less time and resources to complete the software The test of software code can clearly find the errors in such code. Static testing method is applicable to a wide range, especially for large-scale software testing.
The main purpose of computer dynamic testing is to detect problems in software operation. Compared with static testing, the reason why it is called dynamic is that its testing method mainly depends on the use of programs, mainly to detect whether the dynamic behavior in software is missing and whether the software runs well. Its most obvious feature is that the software is running when dynamic testing is carried out. Only in this way can software defects be found in the use process, and then such defects can be repaired. The dynamic test process can include two types of factors, namely, the software under test and the data required in the test. These two types of factors determine the correct and effective deployment of the dynamic test.
3. Black box test
Black box testing, as the name implies, is to simulate the software test environment as an invisible "black box". Observe the data output through data input and check whether the internal function of the software is normal. When the test is launched, the data is input into the software and waiting for the data output. If the data output is consistent with the expected data, it means that the software has passed the test. If the data is different from the expected data, even if the difference is small, it also means that there is a problem in the software program, which needs to be solved as soon as possible.
4. White box test
Compared with black box testing, white box testing is transparent. The principle is to debug the internal working process of the product according to the internal application of software, source code, etc. In the process of testing, it is often analyzed together with the internal structure of the software. The biggest advantage is that it can effectively solve the problems of the internal application program of the software. In the process of testing, it is often combined with the black box testing method. When the testing software has more functions, the white box testing method can also effectively debug such situations. Among them, the decision test is one of the most important test program structures in the white box test method. As the overall realization of the program logic structure, this kind of program structure plays a more important role in program testing. This kind of test method covers all types of code in the program, which covers a wide range and is suitable for multi type programs. In actual detection, the white box test method is often used together with the black box test method. Taking the unknown errors detected in the dynamic detection method as an example, first use the Black box Detection method: if the program input data is the same as the output data, it proves that there is no problem with the internal data, and it should be analyzed from the code side. If there is a problem, it should use the white box test method to analyze the internal structure of the software, until the problem is detected, and it should be corrected in a timely manner. [1]

Test strategy

Announce
edit
1. Unit test
Unit testing is to decompose the whole software into various units, and then test the units. The advantage of this kind of testing strategy is that it requires less analysis data and has strong pertinence. During the development process, the program developer can identify the general area of problems through operating experience, and then analyze the relevant units for problem troubleshooting. However, it should be noted that there is no specific unit driver in some programs, that is, a single unit cannot be effectively driven, which is prone to problems. If testing such software, it is necessary to focus on such decomposition units.
2. Integration test
integration testing Contrary to unit testing, the principle is to integrate some parts to be tested as a whole, and then test such integrated parts. The test requirement is that such tested integration questions should have a certain structure and belong to non incremental integration. For larger software, the integrated test mode is more cumbersome than the unit test mode, and most large software tests are conducted in an incremental manner. Incremental testing is a derivative of integration testing, which can test software in different order. In daily testing, two types of methods are often used for integration testing, and then selected in order. [2]

Development status

Announce
edit
software test
The software system is becoming more and more complex. A software can not be written by a separate software engineer, but is coordinated by a team. Each person may only be responsible for one module, and has no too much understanding of the overall situation. At this time, if you run the software, it is easy to produce many errors. These errors are called BUGs in the industry. And every software engineer will have a blind corner of thinking, and it is not easy for him to find the mistakes he wrote. So at this time, special software test engineers need to check the software in a professional way. Check whether the software conforms to the product design required by the customer and the usage habits of most users. If any abnormal condition is found, handle it in a timely manner. Although the software market is far from saturation, software with various functions also emerges in endlessly fierce competition, and the quality requirements for software development are also increasing.
So software testing is the product of highly mature software development and programming industry. In terms of the overall maturity of the industry, the overall maturity of the software development industry is higher, and people's understanding of software development is more comprehensive and in-depth. Therefore, software testing and software development are usually compared together. Although both of them belong to product research and development, people usually pay more attention to them. Therefore, we often use the requirements of software development and design engineers to evaluate software testing engineers. We only see the weakness of software testing compared with software development, but not the advantages. [3]

Development trend

Announce
edit
From the perspective of the overall industry background, on the one hand, many software enterprises in China focus on development but ignore testing, which causes frequent quality problems of software products in the future and needs to be solved urgently; On the other hand, there are few software testers in the market, and the job gap is large. Many enterprises use development instead of testing for urgent needs. The shortage of software testing talents is more than 300000.
From the perspective of personal career development, software testing talents pay more attention to the accumulation of job experience. After several years of testing experience, practitioners can gradually turn to management or senior test engineers as test managers or department heads, so their career life is longer. In addition, due to the scarcity of domestic software testing engineers, and generally only large and medium-sized enterprises will set up a separate software testing department, it is very secure and generally receives high salaries.
From the above analysis, the software testing industry has broad prospects. [4]

Application in China

Announce
edit
On November 7, 2020, the project of Nanjing International Software Quality Headquarters Base was settled in Pukou, Nanjing. DevOps software basic platform facing the global market, world-class and China's most advanced software security verification laboratory, 5G algorithm software technology laboratory and open source project evaluation laboratory will be built; Build Chinese software quality design platform, detection platform, deployment and application platform, and provide global cloud infrastructure full process services; Set up a software education college to train practical high-end talents in cloud computing, edge computing, software testing and other directions, and become a software talent output base. [5]
In 2021, under the promotion of Jiangsu Association for Science and Technology, we will help introduce the world's top 500 HP DXC public software test service base project. HP is the leading enterprise and core partner to take the lead in investing in the construction of Suqian software public test base in Suqian, and make every effort to promote the accelerated development of Suqian's digital economic industry of "intelligent transformation and digital transformation". [6]

Relevant information

Announce
edit
Research and Implementation of Software Automatic Test Methods
Author: Zhai Lidong, Sun Liping [7]
Research on Computer Software Testing Methods and Applications
Author: Huang Tiankai [8]