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. System Testing is a level of testing that validates the complete and fully integrated software product.
System testing often produces information that stakeholders use to make release decisions. System testing scope shall be clearly addressed in the Master and/or Level Test Plan for that test level.
Table of Content
- Types of System Testing
- Objectives of System Testing
- Test Basis
- Test Objects
- Typical Defects and Failures
- Specific Approaches and Responsibilities
- Video Tutorial
1. Types of System Testing
Some commonly known types of System Testing include:
- Usability Testing
- Load Testing
- Stress Testing
- Scalability Testing
- Regression Testing
- Recovery Testing
- Migration Testing
- Security Testing
2. Objectives of System Testing
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. In some cases, automated system regression tests ensure that changes have not broken existing features or end-to-end capabilities.
- Finding defects
- Preventing defects from escaping to acceptance test levels or production
- For certain systems, verifying data quality may also be an objective.
- System testing may also satisfy legal or regulatory requirements or standards.
3. 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
4. Test Objects
Typical test objects for system testing include:
- Hardware/software systems
- Operating systems
- System under test (SUT)
- System configuration and configuration data
5. 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
6. Specific approaches and responsibilities
- Focus: System testing should focus on the overall, end-to-end behavior of the system as a whole. System testing should investigate both the functional and non-functional requirements of the system.
- Technique Used: System testing should use the most appropriate techniques 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.
- Who performs it: System testing is typically carried out by independent testers who rely heavily on specifications.
- Early involvement of testers: 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.
- Test Environment: The test environment should ideally correspond to the final target or production environment possible to minimize the risk of environment-specific failures at higher levels.