The main types are functional testing (ensuring software meets specifications) and non-functional testing (verifying performance, security, etc.).