System Testing
Definition
System Testing is the third level of testing, where the complete, fully integrated software system is tested as a whole, to verify it meets the overall requirements specified in the SRS — testing the system in an environment that closely resembles production.
Characteristics
- Performed after integration testing is complete
- Treats the system as a black box — testers generally don't need to know internal code structure
- Tests the system end-to-end, including its interaction with hardware, other systems, and the operating environment
- Usually performed by an independent testing team (not the developers)
Types of System Testing (Sub-categories)
| Type | Focus |
|---|---|
| Functional Testing | Does the system do what the SRS says it should? |
| Performance Testing | Speed, response time, throughput under expected load |
| Load Testing | Behavior under expected/peak user load |
| Stress Testing | Behavior under extreme conditions beyond normal capacity (finding the breaking point) |
| Security Testing | Vulnerabilities, unauthorized access, data protection |
| Usability Testing | Ease of use, user experience |
| Compatibility Testing | Works across different OS, browsers, devices |
| Recovery Testing | System recovers properly after a crash/failure |
| Installation Testing | Verifies the system installs/uninstalls/updates correctly |
Relationship to Other Testing Levels
Unit Testing (individual modules)
↓
Integration Testing (modules combined)
↓
System Testing (whole system, vs. SRS)
↓
Acceptance Testing (Alpha/Beta — customer perspective)
Why System Testing Matters
- It's the first time the system is validated as a whole, against the original requirements (not just internal correctness)
- Catches issues that only emerge at full-system scale (performance under load, cross-module interactions at scale, environment-specific issues)
Exam tip: Be ready to list at least 5-6 types of system testing (Functional, Performance, Load, Stress, Security, Usability) with a one-line description each — a common "types of system testing" listing question.