Software Testing Methods
Written by Edvin Eshagh   

There are many types of software testing strategies; thus, organizations must be selective in determining which testing strategy meets their need. Below outlines over 30 different software testing strategies, which by no means is comprehensive.

 Below, is my attempt to classifying different testing methodologies. 

I found the following software testing methods list a great starting point. Below links provide supplemental description.

Name Unit Test Integration test System test Acceptance test Other
Black-Box Testing
Testing the software (external interfaces) without consideration/knowledge of underlying software implementation.
(1, 2) Functional Testing
Testing the software to inuser it meets the software requirement specification.
Load Testing (performance)
Testing a system performance under expected or anticipated load.
Stress Testing (performance)
Testing a system beyond normal and expected load to find system anomalies and limits.
Usability Testing
Identify usability issues in software. Usability study should be conducted as early as possible via low fedelity prototypes to avoid software rework.
    X   X
Regression Testing
Verification step to identify the ripple effect of a change through out the software.
Smoke Testing
A quick "spot check" test before submitting for a comprehensive testing.
Sanity Testing
Similar to smoke test, a software feature or component will be spot checked; however, sanity check does not act as a gate to release for a comprehensive testing.
X X      
Parallel Testing
Comparing the result of one test against another. This may include testing same software (i.e. regression), or different software
Recover TestingTesting systems ability to recover from an induced failure.     X    
Installation Testing
Testing clean install or partial/complete upgrades of a software installation.
Compatibility Testing
Testing application/system to compatibility with various configuration, platforms and interface to other systems.
Configuration Testing
Testing systems ability to operate with different hardware.
Compliance Testing
Testing software to verify that it meets specific standards.
Error-Handling TestingTesting system's ability to handle erroneous transactions. X   X X  
(1 , 2) Manual-Support Testing
List of manual activities in preparation for automated testing (i.e. script creation, data generation, etc).
Inter-Systems Testing   X      
Monkey Testing
Set of data inputs utilized for software testing
Exploratory Testing
Simultanous adapting test case based on the previous system responses.
Volume Testing
Testing systems ability to process large volume (data chunk, data stream, transactions, etc).
Scenario Testing
Testing the system with realistic test cases that mimic problem domain.
Graphical User Interface Testing
Testing the degree in which the user interface meets the software requirement specification.
Systems Testing
System testing is parent umbrella for Functional, Performance, Stress, Configuration, Security, and Recovery testing.
Alpha Testing
Testing conducted as internal acceptance software testing by the software team/organization responsible for its creation.
Beta Testing
Testing conducted by user and at user site prior to classifying software as a production release.
White-Box Testing
Software test attempts to find system vulnerability by targeting specific parts of a system because of his/her knowlege of software internal metrics (maintainability index, cyclomatic complexity, depth of inheritance, class coupling, lines of code)
X X X    
Unit Testing
Software test modules created by a developer to test other software code that satisfy software requirement specification.
Static and Dynamic Analysis
Distinquishing software testing stage for which it can be tested before or after it is executable.
Code CoverageThe degree in which the software logic has been tested. Code coverate includes: Statement, Decision, Condition, and Path coverage. X        
Integration Testing
Testing conducted to 1) detect errors at component interfaces, and 2) assymble sub-component into a complete system and test accordingly. Integration testing may employ Bottom-up or Top-Down testing strategy.
Security Testing
Testing the system that is related to availability, confidentiality, and system/data integrity.
Mutation Testing
Testing the software code that was explicitly modified