Types of Testing

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

  1. create some input
  2. test 2 different implementations using the same input
  3. 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.