Testing is the process of evaluating software to ensure it functions correctly, reliably, and as intended. It includes different testing levels such as unit testing, integration testing, and end-to-end (E2E) testing.
Unit Testing
Tests individual functions or components in isolation.
Key traits:
- Fast, automated, and gives immediate feedback
- Uses mocks or stubs to remove dependencies
- Tools: JUnit, pytest, NUnit
Integration Testing
Verifies how multiple modules interact and exchange data.
Key traits:
- Ensures components work together as intended
- Can be incremental or executed all at once
- Tools: Postman, Selenium, JUnit Integration
End-to-End (E2E) Testing
Validates full user workflows across the entire system.
Key traits:
- Covers UI, backend, and APIs
- Ensures real-world reliability and user experience
- Tools: Cypress, TestCafe, Selenium
Simple Example
A login feature may go through:
| Level |
What It Tests |
| Unit Test |
Validates the login function logic |
| Integration Test |
Verifies the login API works with the authentication system |
| E2E Test |
Ensures a real user can log in, access the dashboard, and log out |
Related Terms