Unit Testing

Unit Tests - Test a unit of an application (class) without external dependencies

Integration Tests - Tests the application with external dependencies (should not be integration across classes, it should go further)

End to End Tests - Drives the application through the UI