
1. By code execution
1.1. Static testing
1.2. Dynamic testing
2. By specification (testing) level
2.1. Unit testing
2.2. Integration testing
2.3. System testing
3. By architecture tier
3.1. Presentation tier testing
3.2. Business logic tier testing
3.3. Data tier testing
4. By aims and goals
4.1. By ways of dealing with application
4.1.1. Positive testing
4.1.2. Negative testing
4.2. Functional testing
4.3. Nonfunctional testing
4.4. Installation testing
4.5. Regression testing
4.6. Re-testing
4.7. Acceptance testing
4.8. Usability testing
4.9. Accessibility testing
4.10. Interface testing
4.11. Security testing
4.12. Internationalization testing
4.13. Localization testing
4.14. Compatibility testing
4.14.1. Configuration testing
4.14.2. Cross-browser testing
4.15. Comparison testing
4.16. Qualification testing
4.17. Reliability testing
4.18. Recoverability testing
4.19. Failover testing
4.20. Data quality testing and Database integrity testing
4.21. Resource utilization testing
4.22. Performance testing
4.22.1. Load (Capacity) testing
4.22.2. Scalability testing
4.22.3. Volume testing
4.22.4. Stress testing
4.22.5. Concurrency testing
5. By access to application code and architecture
5.1. White box method
5.2. Black box method
5.3. Grey box method
6. By functions under test importance (decreasingly) (by functional testing level)
6.1. Smoke testing
6.2. Critical path testing
6.3. Extended testing
7. By and users participation
7.1. Alpha testing
7.2. Beta testing
7.3. Gamma testing
8. By automatization level
8.1. Manual
8.2. Automated (+automatic)
9. By application nature
9.1. Web add testing
9.2. Mobile app testing
9.3. Desktop app testing
9.4. ...
10. By formalization level
10.1. Test case based
10.2. Exploratory
10.3. Ad hoc
11. By techniques and approaches
11.1. Positive testing
11.2. Negative testing
11.3. Based on tester's experience, scenarios, checklists
11.3.1. Explorary
11.3.2. Ad-hoc
11.4. By intrusion to application work process
11.4.1. Intrusive testing
11.4.2. Nonintrusive testing
11.5. By automation techniques
11.5.1. Data-driven testing
11.5.2. Keyword-driven testing
11.5.3. Behavior-driven testing
11.6. By input driven selection techniques
11.6.1. Equivalence partitioning
11.6.2. Baundry value analysis
11.6.3. Domain testing
11.6.4. Pairvise testing
11.6.5. Orthogonal array testing
11.7. By code
11.7.1. Control flow testing
11.7.2. Data flow testing
11.7.3. State transition testing
11.7.4. Code review
11.8. By error source (knowledge)
11.8.1. Error guessing
11.8.2. Heuristic evaluation
11.8.3. Error seeding
11.8.4. Mutation testing
11.9. By operational environment
11.9.1. Development testing
11.9.2. Operational testing
11.10. By application behavior (models)
11.10.1. Decision table testing
11.10.2. State transition testing
11.10.3. Specification-based testing
11.10.4. Model-based testing
11.10.5. Use case testing
11.10.6. Parallel testing
11.10.7. Random testing
11.10.8. A/B testing
12. By chronology
12.1. General chronology
12.1.1. Positive (simple)
12.1.2. Negative (simple)
12.1.3. Positive (complex)
12.1.4. Negative (complex)
12.2. By component hierarchy
12.2.1. Bottom-up testing
12.2.2. Top-down testing
12.2.3. Hybrid testing
12.3. By attention to requirements and requirement's components
12.3.1. Requirements testing
12.3.2. Functional components testing
12.3.3. Nonfunctional components testing