Overview of software testing levels
Software testing is categorized into four main levels to ensure continuous integration and delivery:
- Unit Testing: Tests individual modules, components, or functions. Test cases are typically kept with the source code.
- Integration Testing: Ensures different units work together as expected. It focuses on specific functional blocks and is often performed alongside end-to-end (E2E) testing.
- System Testing: Validates the entire system's compatibility, performance, regression, scalability, and security (including network, IO, CPU, and memory usage).
- Acceptance Testing: Performed from the end-user's perspective before the software is delivered to the production environment.