TDD Overview
Write failing test first.
Fail -> Pass -> Refactor
Unit Testing
Individual functions or units of code
Integration Testing
Testing units of code together
End-to-End Testing
Runs code in simulated environment, e.g. Cypress
Acceptance Testing
Tests that a user or client’s requirements are met
System Testing
Test that works on real devices
Smoke test
Most important tests are run first, then further ones if needed. This is to prevent slowing down the system.
For websites - test every page and every user interaction, and also the components.