Abstract: Software testing is a very important link in software engineering, this paper will be from the purpose of software testing, white box testing and black box testing two categories and their specific classification, to elaborate on the relevant knowledge of soft testing.

First, the purpose of software testing

Finding defects

As soon as possible and as much as possible to find the defects in the tested object, should be the most often mentioned in the testing process of a testing goal, is also an important embodiment of the so-called test value. The purpose of defect discovery is to promote the developer to locate and fix the problem, and the tester to ensure that the developer has fixed the defect without affecting the normal area through retesting and regression testing, so as to improve product quality. At each stage of the development life cycle, testing should be involved and defects should be found as much as possible, so as to greatly improve the ability to contain defects in this stage, thus improving testing efficiency, reducing costs and improving quality.

Two, software testing of the two categories

1. White box test

White-box testing treats the test object as an open box. The internal structure and processing process of the software product need to be tested, but the function of the software product need not be tested when the white-box testing method is used for dynamic testing.

The standard of white box test includes logical cover, cyclic cover and basic road strength test. Logical coverage includes statement coverage, judgment coverage, condition coverage, judgment/condition coverage, condition combination coverage and path coverage.

White box testing is to know the product internal working process, can pass the test to detect the product internal action is normal in accordance with the provisions of the specifications, in accordance with the procedures within the structure of the test procedure, test whether each pathway in the program can have a predetermined requirement to work properly, regardless of its function, white box testing of main methods such as logical drive, road test, Mainly used for software verification.

2. Black box test

Black-box testing refers to testing software according to its specifications. It does not consider the internal workings of the software, so the software is just like a black box to users.

A method of software testing in which the tester, from the user’s point of view, finds defects in the software by looking at various inputs and outputs of the software, regardless of how the program is implemented.

Iii. Specific classification of white box test

(1) Unit testing refers to the examination and verification of the smallest testable units in the software. Stud module refers to the module called by the simulated module under test, driver module refers to the superior module of the simulated module under test, the driver module is used to receive test data, start the tested module and output results.

(2) Integration testing is the next stage of unit testing. It refers to assembling the unit modules that pass the test into systems or subsystems, and then testing, focusing on testing the interface departments of different modules. Integration test is used to check whether each unit and module can cooperate together and run normally.

(3) System testing refers to the testing of the whole software system as a whole, including the testing of functions, performance, and the software and hardware environment where the software runs. The main basis for system testing is the System Requirements Specification document.

(4) Acceptance testing refers to the testing mainly conducted by users or jointly participated by testers and other quality assurance personnel at the later stage of system testing. It is also the final process for software to be formally delivered to users.

Acceptance test is divided into A test and beta test. A test refers to the internal test jointly participated by users, testers and developers, while beta test refers to the public test after the internal test, that is, to test the end users completely.

Iv. Specific classification of black box test

(1) Function testing, which is one aspect of black box testing, checks whether the functions of the actual software meet the needs of users.

Including Logic Function testing

UI=User Interface

Usability testing refers to the inspection of the software system from the perspective of reasonableness and convenience, so as to find the inconvenient parts in the software.

Compatibility testing: includes hardware compatibility testing and software compatibility testing

(2) Performance Testing

The performance of software mainly includes time performance and space performance

Time performance: refers to the response time of a specific transaction in software.

Space performance: refers to the system resources consumed by the software when it is running.

Software performance test is divided into:

General performance test: refers to the performance test that allows the system under test to run under normal hardware and software environment without exerting any pressure on it.

Stability testing, also known as reliability testing, refers to the continuous operation of the system to check the stability of the system.

Load testing: Testing the stability of a system by continuously operating it within the limits of the pressure it can tolerate.

Stress testing: The practice of continuously increasing stress on the system under test until the system under test is overwhelmed. (Validate the system or software can allowed the biggest stress.)

(3) Interface Testing

Interface test is a test to test the indirect interface of a system component. Interface testing is mainly used to detect the interaction points between external systems and internal subsystems. The focus of the test is to check the data exchange, transfer and control management process, as well as the logical interdependence between systems.

I recommend an interface testing and interface documentation production tool: ApiPost

Other test types

Regression testing refers to use cases that repeat previous release tests when testing a new version of the software. (When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.)

Smoke testing refers to verifying whether the basic functions of the software are realized and testability before large-scale testing of a new version. (validate the major function is deployed or not in software of system when a new build or release is implement.)

Random testing refers to a testin which all input data are randomly generated to simulate the real operation of users and find some marginal errors. (means or all the test data is random, to validate the some edge bugs.)

This article is from the huawei cloud community “Software Testing method”, the original author: Ben Si code.

Click to follow, the first time to learn about Huawei cloud fresh technology ~