What is System Testing?
System testing is the type of testing to check the behaviour of a complete and fully integrated software product based on the software requirements specification (SRS) document. The main focus of this testing is to evaluate Business / Functional / End-user requirements.
This is black box type of testing where external working of the software is evaluated with the help of requirement documents & it is totally based on Users point of view. For this type of testing do not required knowledge of internal design or structure or code.
This testing is to be carried out only after System Integration Testing is completed where both Functional & Non-Functional requirements are verified.
In the integration testing testers are concentrated on finding bugs/defects on integrated modules. But in the Software System Testing testers are concentrated on finding bugs/defects based on software application behavior, software design and expectation of end user.
Why system testing is important:
a) In Software Development Life Cycle the System Testing is perform as the first level of testing where the System is tested as a whole.
b) In this step of testing check if system meets functional requirement or not.
c) System Testing enables you to test, validate and verify both the Application Architecture and Business requirements.
d) The application/System is tested in an environment that particularly resembles the effective production environment where the application/software will be lastly deployed.
Generally, a separate and dedicated team is responsible for system testing. And, System Testing is performed on staging server which is similar to production server. So this means you are testing software application as good as production environment.
Different Hierarchical levels of testing:
As with almost any technical process, software testing has a prescribed order in which things should be done. Different levels of testing are used in the testing process; each level of testing aims to test different aspects of the system. The following is lists of software testing categories arranged in sequentially organize.
Unit testing – Testing is done in the development process while developer completes the unit development. The object of this testing is to verify correctness of the module. The purpose of unit testing is to check that as individual parts are functioning as expected. Basically Unit testing is typically carried out by the developer.
Integration testing – System Integration Testing is started after the individual software modules are integrated as a group. A typical software project consists of multiple modules & these are developed by different developers. So in integration testing is focuses to check that after integrating modules Is two modules are communicating with each other or not. It is critical to test every module’s effect on the entire program model. Most of the issues are observed in this type of testing.
System testing – This is the first time end to end testing of application on the complete and fully integrated software product before it is launch to the market.
Acceptance testing – User acceptance is a type of testing performed by the Client to certify the system with respect to the requirements that was agreed upon. This is beta testing of the product & evaluated by the actual end users. The main purpose of this testing is to validate the end to end business flow.
Entry Criteria for System Testing:
- Unit Testing should be finished.
- Integration of modules should be fully integrated.
- As per the specification document software development is completed.
- Testing environment is available for testing (similar to Staging environment)
How to do System Testing?
In Software System Testing following steps needs to be executed:
Step 1) First & important step is preparation of System Test Plan:
The what all points to be cover in System Test plan may vary from organization to organization as well as based on project plan, test strategy & main test plan.
Nevertheless, here is list of standard point to be considered while creating System Test Plan:
- Goals & Objective
- Critical areas Area to focus
- Test Deliverable
- Testing Strategy for System testing
- Testing Schedule
- Entry and exit criteria
- Suspension & resumption criteria for system testing
- Test Environment
- Roles and Responsibilities
Step 2) Second step is to creation Test Cases:
It is very much similar functional test case writing. In test case writing you should write the test scenarios & use cases.
Here you should consider different type of testing like Functional testing, Regression testing, Smoke testing, Sanity testing, Ad-hoc testing, Exploratory testing, Usability testing, GUI software testing, Compatibility testing, Performance testing, Load testing, Stress testing, Volume testing, Error handling testing, Scalability testing, Security testing, Capacity testing, Installation testing, Recovery testing, Reliability testing, Accessibility testing etc
While writing test case you need to check that test cases are covering all functional, non-functional, technical & UI requirements or not.
Sample Test Case Format:
Test Case ID
Test Suite Name
|How to Test?||Test Data||Expected Result||Actual Result||
Step 3) Creation of test data which used for System testing.
Step 4) Automated test case execution.
Step 5) Execution of normal test case & update test case if using any test management tool (if any).
Step 6) Bug Reporting, Bug verification & Regression testing.
Step 7) Repeat testing life cycle (if required).
In System testing now you have clear about What is System Testing?, Importance of system testing, different levels of testing and How & what criteria needs to be consider in System Testing. If you think any points is missed or to be added in System testing then you
If I missed out addressing some important points on System testing then let me know in comments below.
If you really like this article, consider subscribing to get all Testing Updates in your Inbox for FREE. To get testing tips Click Here.