System testing
Also known as System-level testing
Definition
System testing evaluates a complete integrated software system against specified requirements. It exercises the system through intended interfaces and considers whether the assembled product behaves correctly in a representative environment.
Definition
System testing treats the integrated application as the subject under test. Instead of asking whether one function or interface works, it asks whether the assembled system satisfies its stated functional and quality requirements. The system may be tested through a user interface, public API, command line, or another supported entry point.
Choosing system-level scenarios
Good scenarios represent meaningful system behavior and important risks. They may cover authentication, a complete business operation, permissions, failure recovery, or a performance requirement. The test environment should make relevant dependencies, configuration, data, and external boundaries realistic enough for the question being asked.
System tests benefit from clear ownership and stable setup. When a failure occurs, teams need enough logs and diagnostic information to distinguish a product defect from an environment problem. Test data should also be isolated so that one scenario does not silently change the result of another.
Example
Suppose a customer changes an address in an account portal. A system test can sign in as an eligible customer, submit the address, verify the confirmation shown by the portal, and then retrieve the account through the supported read path to confirm persistence. The scenario checks the assembled routing, authorization, storage, and response behavior.
A unit test for the address validator and an integration test for the account repository are useful, but neither alone proves that the complete operation works through the product boundary.
Limitations
System tests are slower and more expensive to diagnose than narrow tests. They cannot explore every input or replace unit and integration coverage. A passing system test also depends on the scenarios selected and the environment configured. Keep the suite focused on high-value requirements, and use lower-level tests for broad edge-case coverage and faster feedback.
How this relates to Weave
Weave adds engineering context around the changes and delivery events associated with system testing, including review activity, check feedback, rework, and release outcomes. Teams can use that context to investigate whether system-level failures cluster around certain change types or create avoidable queues. Weave does not execute system tests, define product requirements, or decide whether an environment is representative, so test evidence and product acceptance criteria remain authoritative.
Explore Engineering intelligence