White-Box, Black-Box
White-Box: The tester knows details about how the system works. Black-Box: Testing is done purely by knowing the expected inputs and outputs.Unit Testing
- Small modules of code are tested in isolation
- The goal is to find defects in the internal logic of the code as soon as possible
- No pre-conceived patterns of use are assumed (test all possible inputs)
Integration Testing
- Take modules that have already been unit-tested and test them together
- The goal is to test the interfaces between modules
System Testing
- Usually Black-Box Testing
- Tests if the system as a whole works
- Focuses on how it will be used in the most important use-cases
Differential Testing
- create some input
- test 2 different implementations using the same input
- Test the outputs of both implementations for differences
Stress Testing
The System is tested at or beyond the limits of normal use.Random Testing
Inputs are generated at random and fed to the System (e.g. CrashMe).Regression Testing
Inputs that previosly caused the system to fail are tested on the new version.
From
Udacity's Software Testing course unit 1.