Testing sort
[Testing sort 1] Comprehensive and specific
1. Sorted by the development process:
Unit testing, integration testing, system testing, verification testing and acceptation testing.
Unit Testing
Also known as module testing, is the testing job for the smallest unit -- program module, to check out if the unit can properly realize the requirement about function, performance, interface and bondage, and so on. Unit testing should be designed test case from the internal architecture of program.
Integration testing
Integration testing try to test the interfaces of program unit and component, which will integrate the whole system gradually.
Software testing is a continued process, which will form many temporary version. The stability of function integration is a real challenge. It need smoke testing before committing every version. means to verify the mainly functions of the program. Smoke testing also is called version verification testing or commit testing.
Verification testing
Verification testing is to verify if the software can satisfy the given expected requirement throughout verifying and supping objective proof. This testing method is to check if the software can meet the needs of software requirement specification document.
System testing
System is to test the integration of hardware and software in order to verify and confirm if the system can achieve the original goal.
Acceptation testing
Acceptation testing is to test and review the whole system in order to determine to accept or reject the system according to the project assignment paper, contract and acceptation accordance.
2. Sorted by test performing organization
Development testing: verification testing or α testing.
User testing: β testing
Third party testing: IV&V testing
3. Sorted by testing technology
White-box testing
refers to testing a system will full knowledge and access to all source code and architecture documents. Having full access to this information can reveal bugs and vulnerabilities more quickly than the "trial and error" method of black box testing. Additionally, you can be sure to get more complete testing coverage by knowing exactly what you have to test. However, because of the sheer complexity of architectures and volume of source code, white box testing introduces challenges regarding how to best focus the test and analysis efforts. Also, specialized knowledge and tools are typically required to assist, such as debuggers and source code analyzers.
Black-box testing
refers to testing a system with no specific knowledge to the internal workings of the system, no access to the source code, and no knowledge of the architecture. In essence, this approach most closely mimics how an attacker typically approaches your application. However, due to the lack of internal application knowledge, the uncovering of bugs and/or vulnerabilities can take significantly longer.
Grey-box testing
typically refers to testing a system with limited knowledge of the internals of a system. This knowledge is usually limited to detailed design documents and architecture diagrams. It is a combination of both black and white box testing, and tries to leverage the strengths of each.
In some situations a tester may prefer white box testing, but is restricted to gray box or black box testing due to a lack of access to more detailed information. Security testers should be flexible and able to plan a test approach for any of these scenarios given the time and access to resources available for a given application.
[Testing sort 2] Simple and clear
1 Sorted by testing scope
Uniting testing
Component testing
Integration testing
System testing
Verification testing
Installation testing
2 Sorted by testing goal
1) Correctness testing
white-box testing
black-box testing
2) Performance testing
3) Reliability testing
a) strong testing
b) exception handing testing
c) load testing
4) Security testing
3 Sorted by testing object
1) Unit testing
2) Component testing
3) Module testing
4) Code testing
5) System testing
6) Document testing
4 Sorted by testing process
1) Requirement precess testing
2) Design process testing
3) Coding process testing
4) Assessment of testing result
5) Installation testing
6) Acceptation testing
7) Testing Change: Maintenance
Other testing method
Regression testing: When the bugs are being fixed, the original function are strengthen or new functions are added, will be used regression testing.
Pressure testing: also known as performance testing.
Recovery testing
Security testing
Compatibility testing