1. Unit Testing

Verifies individual components or "units" of code, like functions or methods, to ensure they function correctly in isolation.

2. Integration Testing

Tests the interaction between different modules or units of code to ensure they work together correctly.

3. System Testing

Evaluates the entire software system as a whole, treating it as a black box, to ensure it meets all functional and non-functional requirements.

4. Acceptance Testing

Verifies that the software meets the requirements of the end-users, from their perspective.

5. Regression Testing

After making changes or fixes to the software, this testing ensures that the new changes don't introduce any new issues or break existing functionality.

6. Performance Testing

Evaluates the system's performance under different conditions (e.g., speed, scalability, and response time).