7.system Testing
7.system Testing
It is end-to-end testing wherein the testing environment is similar to the production environment.
System testing is a type of testing where the application as a whole is tested for its compliance
with functional and non-functional requirements. It is carried out by the QA team after the
completion of integration testing and before the final acceptance testing.
Here, we navigate through all the features of the software and test if the end business / end
feature works. We just test the end feature and don‟t check for data flow or do functional testing
and all
Since in system testing the whole system is tested end to end and the knowledge of coding or
internal architecture is not required. Hence, system testing comes under Black-box Testing.
The purpose is to check the system from the user’s point of view.
The goal of system testing is to minimize the risks associated with the behavior of the system in
a particular environment. For this, testers use the environment as close as possible to the one
where a product will be installed after the release.
In a real time environment, we may make lakhs of entries into the database. But, while testing
we can‟t enter manually lakhs of entries, so we write a test script program which generates
thousands of entries and thus can be used for testing.
Thus, the actual definition of End-to-End testing can be given as – Take all possible
end-to-end business flows and check whether in the software, all the scenarios are
working or not. If it is working, then the product is ready to be launched.
Note:
Unit Testing used to test a single software
Integration Testing used to test a group of units of software
System Testing used to test a whole system and
Acceptance Testing used to test the acceptability of business requirements.
- The system is tested as a whole in this phase of testing. Even after successful unit and
integration testing, many complex scenarios may have issues undiscovered by earlier
testing phases. System testing helps in uncovering those defects.
- Both the functional as well as non-functional requirements are tested for the whole
system are tested for the first time in this phase
- The system is evaluated on the basis of the user’s point of view, which is an important
way to understand the end-users requirement.
Types of System Testing
In system testing both the functional and non-functional requirements of the system are
evaluated. Hence, system testing involves different types of testing techniques that evaluate the
whole system and its various attributes.
- Graphic user interface (GUI) testing checks the interface – all the visual elements
customers use to interact with the system. At this stage, the team checks buttons, input
fields, text rows, etc.
- Functional testing focuses on software features and checks all the functionalities to
verify they match the requirements.
- Usability testing- how easy to use the application, eg, by checking that proper error
message should be displayed on screen or not
- Performance testing examines software behavior in different environments and under
different conditions. It features load, stress, spike, recovery, and other types of tests that
estimate system response, speed, and stability.
- Compatibility testing is used to verify that a program, app, or other types of software
we are dealing with is supported across different devices and browsers.
- Security testing is the way to make sure the app is safe to use and well-protected from
hackers and scammers
- Regression testing checks an untouched part of the functionality after a dev team
makes some code changes since they can be affected by accident.
- Stress Testing is a type of software testing performed to check the robustness of the
system under the varying loads.
- Installation testing and many more…..
The system testing process varies from project to project. But still, the following steps are
common in the process of system testing.
1. Test Environment Setup: Setting up a separate environment for system testing for
better quality testing
2. Test Plan Creation: Create a plan which needs to be followed
3. Test Case Creation: Create test cases based on the requirement document
4. Test Data Creation: Create valid test data to ensure quality testing
5. Test Case Execution: Execute test by following the test cases to test the application
6. Defect Reporting: Report the defects with the proper bug report template.
7. Retest & Regression testing (if required): Repeat the test cycle if the test is not
successful.
8. Signoff: Signoff after test completion.