Software Testing Classification

1. According to whether to view the internal structure of the program, it is divided into:
(1) Black -box testing: only care about the results of input and output
(2) White -box testing: to study the source code and program structure inside
2. According to whether the program is running or not, it is divided into:
(1) Static testing: refers to the process of statically checking program code, interface or documentation for possible errors without actually running the software under test.
Static tests include:
For code testing, it is mainly to test whether the code conforms to the corresponding standards and specifications.
For interface testing , the main test is whether the actual interface of the software conforms to the description in the requirements.
For document testing , it is mainly to test whether the user manual and requirement description really meet the actual needs of users.
(5) Dynamic testing refers to the process of actually running the program under test, inputting the corresponding test data, and checking whether the output results match the expected results.
3. Divided by stage:
(1) Unit testing refers to the inspection and verification of the smallest testable unit in the software.
The stub module (stud) refers to the module called by the simulated module under test, and the driver module (driver) refers to the upper-level module that simulates the tested module. The driver module is used to receive test data, start the tested module and output the results.
(2) Integration testing is the next stage of unit testing . It refers to assembling the tested unit modules into systems or subsystems, and then testing them, focusing on testing the interface departments of different modules.
Integration testing is used to check whether the various unit modules are combined together to work together and operate normally.
(3) System testing refers to testing the entire software system as a whole, including testing functions, performance, and the hardware and software environment in which the software runs.
The main basis for system testing is the " System Requirements Specification" document.
(4) Acceptance testing, which refers to user testing in the later stage of system testing , or testing with the participation of quality assurance personnel such as testers. It is also the last process in which the software is officially handed over to users for use. .
Acceptance testing is further divided into a testing and beta testing, where a testing refers to internal testing jointly participated by users, testers, developers, etc., while beta testing refers to public testing after internal testing, which is completely handed over to end users test.
4. Black box testing is divided into functional testing and performance testing :
1) Function testing is an aspect of black box testing , which checks whether the functions of the actual software meet the needs of users.
Including logic function testing (logic function testing),
 interface testing (UI testing), UI=User Interface
 , usability testing ( usability testing): refers to checking the software system from the perspective of the rationality and convenience of software use , to discover the software inconvenient for users.
Compatibility testing (compatibility testing): including hardware compatibility testing and software compatibility testing
2) Performance testing
There are two main types of software performance: temporal performance and spatial performance.Time performance: mainly refers to the response time 
of a specific transaction of the software .Space performance: mainly refers to the system resources 
consumed by the software when it runs .
Software performance testing is divided into:
General performance test : refers to the performance test that allows the system under test to run in a normal software and hardware environment without applying any pressure to it.
Stability testing, also known as reliability testing, refers to the continuous operation of the system under test to check the stability of the system during operation.
Load testing (load testing): refers to the continuous operation of the system under test within the limit of the pressure it can endure to test the stability of the system.
Stress testing: refers to continuously increasing the pressure on the system under test until the system under test is overwhelmed, and is used to test the maximum pressure that the system can withstand. (Validate the system or software can allow the biggest stress.)
5. Other test types:
Regression testing refers to the use case of repeating the previous version test 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 the priori Verify whether the basic functions of the software are realized and whether they are measurable. (validate the major function is deployed or not in software of system when a new build or release is implement .)
 Random testing (random testing) means that all input data in the test are randomly generated, the purpose of which is to simulate the user's Do it for real, and find some borderline bugs. (means or all the test data is random, to validate the some edge bugs.)

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326553630&siteId=291194637