test early, test often

Black Box Testing

testing only through the interface

  • more representative of user perspective
  • easier to write usually

Clear/White Box Testing

Tests that know about the implementation

  • better for edge cases

Unit testing

usually people mean method testing

integration testing

how code interacts with code or other services