2.2.3. System Testing
Objectives of system testing
System testing focuses on the behavior and capabilities of a whole system or product, often considering the end-to-end tasks the system can perform and the non-functional behaviors it exhibits while performing those tasks. Objectives of system testing include:
Reducing risk
Verifying whether the functional and non-functional behaviors of the system are as designed and specified
Validating that the system is complete and will work as expected
Building confidence in the quality of the system as a whole
Finding defects
Preventing defects from escaping to higher test levels or production
For certain systems, verifying data quality may also be an objective. As with component testing and integration testing, in some cases automated system regression tests provide confidence that changes have not broken existing features or end-to-end capabilities. System testing often produces information that is used by stakeholders to make release decisions. System testing may also satisfy legal or regulatory requirements or standards.
The test environment should ideally correspond to the final target or production environment.
Test basis
Examples of work products that can be used as a test basis for system testing include:
System and software requirement specifications (functional and non-functional)
Risk analysis reports
Use cases
Epics and user stories
Models of system behavior
State diagrams
System and user manuals
Test objects
Typical test objects for system testing include:
Applications
Hardware/software systems
Operating systems
System under test (SUT)
System configuration and configuration data
Typical defects and failures Examples of typical defects and failures for system testing include:
Incorrect calculations
Incorrect or unexpected system functional or non-functional behavior
Incorrect control and/or data flows within the system
Failure to properly and completely carry out end-to-end functional tasks
Failure of the system to work properly in the system environment(s)
Failure of the system to work as described in system and user manuals
Specific approaches and responsibilities
System testing should focus on the overall, end-to-end behavior of the system as a whole, both functional and non-functional. System testing should use the most appropriate techniques (see chapter 4) for the aspect(s) of the system to be tested. For example, a decision table may be created to verify whether functional behavior is as described in business rules.
System testing is typically carried out by independent testers who rely heavily on specifications. Defects in specifications (e.g., missing user stories, incorrectly stated business requirements, etc.) can lead to a lack of understanding of, or disagreements about, expected system behavior. Such situations can cause false positives and false negatives, which waste time and reduce defect detection effectiveness, respectively. Early involvement of testers in user story refinement or static testing activities, such as reviews, helps to reduce the incidence of such situations.
Last updated
Was this helpful?