Software Testing - different levels of software testing
1. Unit Testing
-
Purpose: Test individual components or modules (e.g., functions, classes) in isolation.
-
Focus: Logic correctness within a single unit.
-
Who performs it: Usually developers.
-
Example: Testing a login function to ensure it returns "success" for correct credentials.
2. Integration Testing
-
Purpose: Test interactions between modules or services.
-
Focus: Data flow, API calls, and module compatibility.
-
Who performs it: Developers or testers.
-
Example: Checking if the login function correctly communicates with the database and user profile system.
3. System Testing
-
Purpose: Test the complete, integrated system against requirements.
-
Focus: End-to-end functionality, performance, security.
-
Who performs it: Dedicated testing team.
-
Example: Verifying that a user can register, log in, browse products, and checkout without issues.
4. Acceptance Testing
-
Purpose: Verify if the software meets business needs and is ready for delivery.
-
Focus: User expectations and real-world use cases.
-
Who performs it: End-users, clients, or QA team.
-
Example: A client tests the system to confirm it works as expected before signing off for deployment.