System Testing is a level of software testing where a complete and integrated software is tested to verify that the entire system works as intended and meets the specified requirements.
- system testing: The process of testing an integrated system to verify that it meets specified requirements.
During the process of manufacturing a ballpoint pen, the cap, the body, the tail, the ink cartridge and the ballpoint are produced separately and unit tested separately. When two or more units are ready, they are assembled and Integration Testing is performed. When the complete pen is integrated, System Testing is performed.
Usually, Black Box Testing method, in which the internal structure of the system under test is unknown, is used. Tests are normally done manually but the trend of test automation, specially for Regression Testing, is picking up.
- System Test Plan [Prepare >> Review >> Rework >> Baseline]
- System Test Cases/ Test Scripts/ Test Data [Prepare >> Review >> Rework >> Baseline]
- System Test [Execute >> Re-execute]
When is it performed?
Who performs it?
Normally, independent software testers perform System Testing.
System Testing is the most comprehensive level of testing and many types of tests are performed. Some of them are mentioned below:
- Smoke Testing to ensure that the most important functions work and to decide whether the build is fit for further testing.
- Functional Testing to ensure that features work as per the functional requirements.
- Regression Testing to ensure that changes (enhancements or defect fixes) to the software have not adversely affected it.
- Usability Testing to evaluate the user interface’s ease of use from an end-user’s perspective.
- Performance Testing to determine how the system performs in terms of responsiveness and stability under various workloads and conditions.
- Security Testing to uncover vulnerabilities of the system and ensure that its data and resources are protected against unauthorized access and malicious attacks.
- Compliance Testing to determine the compliance of the system with internal or external standards.
Since System Testing involves testing the software as a whole, the goal should be to make the test environment as close to the production environment as possible. Else, you will be hurled with production defects that the sophisticated you failed to catch whereas the simple end-users instantly found. What an embarrassment!
Confusion with System Integration Testing
Sometimes, System Testing is confused with System Integration Testing, which is just a type of Integration Testing focusing on the interactions and interfaces between systems. System Testing, on the other hand, takes a more holistic approach and focuses on the entire system’s ability to fulfill the business / software requirements.
System Testing is one of the most important phase of any software development lifecycle since it provides a comprehensive assessment of the software’s quality and readiness for deployment in production.
Last Updated on March 18, 2023 by STF