Classification of software testing methods

Software test classification:

Divided into: black box test, gray box test, white box test

Black box testing: also known as functional testing, data-driven testing, or testing based on specifications. Testing does not require understanding of the internal conditions of the program, only the input and output of the program and the function of the system. This is done from the user's perspective. Test.

White box testing: also known as structural testing, logic-driven testing, or testing based on the province of the program. It is more important than the internal structure and algorithm of the program. It usually does not include functions and performance indicators. White box testing is a control structure based on source code. , Processing process, etc., to check whether the internal processing of the program is correct, including exception handling, statement results, branching, loop structure, etc. White box testing is generally based on units or modules; the
main test methods of white box testing are:
1. Statement Coverage: Make every statement in the program covered at least once
2. Judgment coverage: Make every judgment in the program at least true or false once
3. Conditional coverage: Make every condition in the judgment obtain various possible results
4. Judgment / Condition Coverage: Both Judgment Coverage and Conditional Coverage are satisfied at the same time.
5. Conditional Combination Coverage: Make every possible combination of conditions in each judgment appear at least once.

Gray box test: It
is a test technology based on the external performance of the program at the same time and the internal logic result of the program to design the use case, execute the program and collect program execution information and external user external interface results. This test technology is between black box test and white Between box testing, gray box testing consists of methods and tools, which are based on the internal knowledge of the application and the environment with which it can be used. It can be used in black box testing to enhance test efficiency, error detection and error case analysis. Efficiency (interface testing is a grey box test).

Divided into: static test and dynamic test

Static test: Do not run the code, statically check the possible errors in the program code, interface or documentation, including code review, UI interface check, requirement rule specification, and user manual check.
Dynamic test: run the tested code, input the corresponding test data, and check whether the output result is consistent with the expected result.

Divided into: unit testing, integration testing, system testing, acceptance testing.

Unit testing: Testing
the functions and modules of the software under test is the least granularity of testing.

Integration test:
Mainly test the problem of software structure. The test is built on the module interface, so the interface test is supplemented by white box test. The integration test is a system test technology for assembling software. According to the design requirements, each module that passes the unit test Assemble together and conduct comprehensive tests to discover various errors related to the interface.
The following methods should be followed to perform integration tests:
1. Confirm the relationship between the modules that make up a complete system.
2. Review the interaction and communication requirements between the modules and confirm the interface between the modules.
3. Use the above information to generate a set of test cases.
4. Using incremental testing, add modules to the system in sequence and test the newly merged system. This process is repeated in a logical / functional sequence until all modules are integrated into the system to form a complete system.
The principle that integration testing follows:
Integration testing is not easy to grasp, and planning should be started as early as possible for the overall design.
1. All public interfaces must be tested.
2. The key modules must be fully tested.
3. Integration testing should be conducted at a certain level.
4. The strategy selection for integrated testing should consider the relationship between quality, cost and schedule.
5. Integration testing should start as soon as possible and be based on the overall design.
6. In the division of modules and interfaces, testers should fully communicate with developers.
7. When the interface is modified, the related interface must be tested again.
8. The test execution results should be recorded truthfully.

System test: After the
integration test is passed, the software is assembled into a complete software package. At this time, the system test must be carried out. The system test completely uses black box test technology. The data used in the system test is as accurate and representative as possible to simulate the real data. Sex.

Acceptance test: After the
system test is completed, the software is fully assembled. At this time, you can start the final confirmation test of the software. The confirmation test mainly checks whether the software can work according to the contract requirements, that is, whether it meets the requirements in the software requirements rule specification. .
The acceptance test focuses on whether the software meets all the functions and performance specified in the contract, whether the documentation is complete and accurate, and whether the human-machine interface and other aspects (such as portability, compatibility, error recovery capability, and maintainability) meet customer requirements. .
Acceptance test can use α, β test.

  • Alpha test: Refers to the internal personnel of the software development company to simulate various user behaviors to test the upcoming software products. The software products that have undergone the alpha test are called beta versions.
  • Beta test: The software product company organizes typical users to use the beta version in their daily work, and requires users to report abnormal conditions and put forward suggestions for improvement, and then the software development company corrects and perfects the beta version. (The software company places the beta version of the software on the Internet for users to download for free, and can test it for a certain period of time, or distribute it to some prospective customer groups who are looking forward to trial for free for a certain period of time.

Divide other tests: regression test, 'smoke test, random test

Regression testing: Test cases used when testing the new version of the software and repeatedly executing the previous version.

Smoke test: For each newly compiled software that needs to be officially tested, the basic functions of the software are confirmed to be normal. The smoke executive is generally a version compiler or other R & D personnel.

Random test: In the test, the test data is randomly generated, also called monkey test (monkey test).
Some disadvantages of random testing:
1. Testing is often not very true.
2. Cannot reach a certain coverage rate.
3. Many tests are redundant.
4. You need to use the same random seed to rebuild the test.
This kind of random test is not very useful in many cases. It is often used as a "prevention of collapse" or to verify whether the system can remain normal when it is adversely affected. You can use this method to examine the system's Robustness, to prevent the generation of large amounts of garbage data and other means.
--Excerpt from "Proficient in Software Performance Testing and Loadrunner Best Practice"

Guess you like

Origin blog.51cto.com/14610663/2488369