| Method and Description | Objective | Test Type | Applicable Level |
|---|---|---|---|
| Scenario-based testing (also called thread testing): Testing using data based on usage scenarios, e.g., simulation of the mission. | Assess overall conformance and dependability in nominal usage. | Black box. | Integrated software and system. |
| Requirements-based testing: Testing to assess the conformance of the software with requirements. | Determine whether the software meets specific requirements. | Black box. | All levels at which requirements are defined. |
| Nominal testing: Testing using input values within the expected range and of the correct type. | Verify conformance with nominal requirements. | Black box. | All. |
| Stress testing (a type of negative testing): Testing with simulated levels beyond normal workloads, or starving the software of the computational resources needed for the workload; also called workload testing (usually run concurrently with endurance tests). | Measure capacity and throughput; evaluate system behavior under heavy loads and anomalous conditions to determine workload levels at which system degrades or fails. | Black box. | Integrated software and system. |
| Robustness testing (a type of negative testing): Testing with values, data rates, operator inputs, and workloads outside expected ranges. | Challenge or "break" the system with the objective of testing fail safe and recovery capabilities. | Black and white box. | All. |
| Boundary-value testing (a type of negative testing): Testing the software with data at and immediately outside expected value ranges. | Test error detection and exception handling behavior of software with anticipated exception conditions. | Black and white box. | Unit, software subsystem. |
| Extreme-value testing (a type of negative testing): Testing for large values, small values, and the value zero. | Same as boundary-value testing. | Black and white box. | Unit, software subsystem. |
| Random testing: Testing the software using input data randomly selected from the operational profile probability distribution. | Assess overall stability, reliability, and conformance with requirements. | Black box. | Integrated system. |
| Fault-injection testing: Testing on the nominal baseline source code and randomly altered versions of the source (white box) or object code (black box). | Assess failure behavior, ensure that system properly responds to component failures. | Black and white box. | Integrated software. |
| Branch testing: Testing using test cases selected to test each branch at least once. | Test correctness of code to the level of branches. | White box. | Software unit. |
| Path testing: Testing using test cases selected to test each path (i.e., feasible set of branches) at least once. Also called flow-graph testing. | Test correctness of code to the level of paths. | White box. | Software unit. |
| Modified-condition decision coverage: Every point of entry and exit in the program has been invoked at least once, every condition in a decision in the program has taken all possible outcomes at least once, every decision in the program has taken all possible outcomes at least once, and each condition in a decision has been shown to independently affect that decision's outcome. | Test for safety-critical software where a failure would probably or almost inevitably result in a loss of life. | White box. | Software unit (assembly code created by compiler under some circumstances). |