System Test
Key points
- A system test runs the whole system in an environment equivalent to production, checking not just functionality but also non-functional requirements like performance and security.
- Where a comprehensive test focuses on "are the functional requirements met," a system test looks at the bigger picture: "does it actually work in production?"
- In practice, it's often treated as nearly the same phase as the comprehensive test.
What a system test is
A system test runs the whole system in an environment close to production — including server configuration and data volume — to confirm it functions according to requirements and can hold up under real-world use.
🔑 Everyday exampleIf the test drive (comprehensive test) confirmed the driving actions work overall, this is like the final check where you actually drive it under conditions close to "real road and traffic conditions in production."
How it differs from comprehensive testing
Whether a phase is called "comprehensive test" or "system test" varies by team and project, and in practice the two are often used with nearly the same meaning. Strictly speaking, though, there's a difference in what each one checks.
Are functional requirements met?
Comprehensive check in a production-equivalent environment
Examples of non-functional requirements checked
In a system test, on top of confirming that functionality works correctly, the following kinds of "non-functional requirements" are also checked.
Why test in a production-equivalent environment
Development environments often have lower data volumes and traffic, which can fail to reproduce problems that only show up in production. Testing with specs and data volumes close to production helps prevent the situation where "it worked fine in development but is slow or crashes in production" after release.
The bridge to UAT
Once a system test confirms, from the development side, that "it works fine in production too," the project finally moves on to "UAT," where the client and actual users try the system themselves.
Summary
A system test runs the whole system in a production-equivalent environment, checking non-functional requirements such as performance, security, and availability, in addition to functionality. It overlaps a lot with the comprehensive test, but places stronger emphasis on the question of "can it actually be used in production?"
Related topics: