UI tests : Ensure that the software uses a consistent user experience and no visual or graphical elements on the screen are broken.
Unit tests : These are written by software developers and test a unit of code in isolation.
Integration tests : These test how well different software components work with each other.
Regression tests : Verify that the new code didn't break any existing functionality.
Performance tests : Ensure that the software won't crash and perform reasonably under heavy load or stringent conditions.