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).

Close this window