Software testing classification & principles

1. Software testing classification

  1. Divided according to the development stage
    (1) Unit test: generally read the program and code. Most of the time, unit testing is done by the developers themselves (development cross-completion) (but it is generally not considered to be testing). Why don't testers do unit tests? Because the average tester does not understand the code and algorithm.

(2) Integration test: More design to interface test. It is a continuous process.

(3) Confirmation test: Whether the function is realized is generally a positive test. Only software that has passed the confirmation test is qualified to enter the system test. Sometimes the confirmation test is also called the smoke test. Generally not as a formal test link.

(4) System test: It is a comprehensive test, it is a test of all the functions of the system, and it simulates the operation of all software users. It is also omni-directional, with the connection with the hardware system, the connection with the system software, and the connection with other software.

(5) Acceptance test: Generally, both sides of supply and demand. There are generally three main types of acceptance tests. Alpha test: The pre-delivery test performed by the software developer. Beta test: A test conducted by the software demander itself. γTest: third-party software testing.

  1. Divided according to testing technology
    (1) Black box testing: Finding defects and errors through the external performance of the software.

(2) White box testing: Find problems by analyzing and testing the internal structure of the program.

(3) Gray box testing: a test between white box testing and black box testing.

  1. Divided according to code operation
    (1) Static testing: refers to the process of statically checking the program code, interface or document for possible errors without actually running the object under test.

(2) Dynamic test The
only criterion to distinguish static test from dynamic test is to see whether the program is running.

  1. Classification according to software characteristics
    (1) Functional testing: It is one aspect of black box testing to check whether the actual software functions meet the needs of users. Reflected in: logic function test, interface test, usability test, installation/uninstallation test, compatibility test.

(2) Performance test: There are two main types: time performance and space performance

(3) Safety test

  1. Divided according to test operation subjects
    (1) Manual test (functional test): little by little

(2) Automated testing: use tool software or write code to test the software system under test. (Game plug-in)

  1. Other test types
    (1) Regression test: When testing a new version of the software, all test cases of a previous important version are repeatedly executed. Purpose: A. To verify that all defects in the previous version have been repaired. B. Confirm that repairing these defects does not cause new defects.

(2) Smoke test: It means to verify whether the basic functions of the software are realized and whether it is testable before a large-scale system test of a new version. Also called testability test.

(3) Random test: Refers to the test based on experience and intuition by testers and finds some marginal errors.

(4) Monkey test: Think of yourself as an idiot or a small animal who doesn't understand the product, just mess around, without any subjective consciousness and ideas to participate, and let some unexpected operations cause wrong results.

Insert picture description here

2. Principles of software testing

(1) All testing standards are based on user needs.

(2) Software testing must be based on the idea of ​​"quality first" to carry out various tasks. When time and quality conflict, time must obey quality.

(3) The quality standard of the product is defined in advance. Only with the quality standard can the quality of the product be analyzed and evaluated based on the test results.

(4) The software test starts as soon as the software project is started, rather than waiting for the program to be written before starting the test.

(5) Exhaustive testing is impossible.

(6) Third-party testing will be more objective and effective.

(7) The software test plan is a prerequisite for doing a good job in software testing.

(8) The test cases are designed, not written, so according to the purpose of the test, the corresponding methods should be used to design the test cases, so as to improve the efficiency of the test, find more errors, and improve the reliability of the program.

What is the difference between designing and writing test cases? Design is a mental activity, and writing is a physical activity. The designed content is expressed in the form of words.

(9) A more in-depth test should be carried out for the program segments where many errors are found. Generally speaking, the more errors have been found in a program, the greater the probability of errors. Test hard on the modules that are found to be defective, and also test the associated modules. (Defects have a clustering effect).

(10) Pay attention to documents and properly keep all test process documents (test plan, test case, test report, etc.).

(11) The motto of testers should be "Test as soon as possible".

(12) The relevance of regression testing must attract sufficient attention. It is not uncommon to modify one error and cause more errors.

(13) Testing should start from "small scale" and gradually shift to "large scale".

(14) Test cases should not be left out of scope and arbitrariness should not be excluded.

(15) Every test result must be thoroughly checked.

(16) Be sure to pay attention to the occurrence of errors in the test, which has a great relationship with the programmer's programming level and habits.

(17) There must be a confirmation process for the test error results.

Guess you like

Origin blog.csdn.net/weixin_49984044/article/details/109538496