System testing is the type of testing to check the behavior 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) It 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
- Scope
- Critical areas Area to focus
- Test Deliverable
- Testing Strategy
- Testing Schedule
- Entry and exit criteria
- Suspension & resumption criteria
- Test Environment
- Roles and Responsibilities
- Glossary
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 |
Pass/Fail |
Step 3) Creation of test data which used for this testing type.
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).
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 missed out addressing any points on above testing type then let us 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.
- Basic Concepts of System Testing – A Beginners Guide
- Regression testing definition
- User Acceptance Testing: What? Why? & How?
- Difference between System testing and Acceptance Testing
- Dynamic Testing in Software Testing
- Difference between Unit Test Vs Integration Test
- Disruptive Testing
- What is Static Testing?
- Destructive Testing In Software Testing
- Pairwise Testing in Software Testing
29 thoughts on “System Testing: What? Why? & How?”
exalent sir
Excellent its very simple to understand. Thank you.
I wanted a project to write some test cases. please can you send me one.
this good
this is good for engineer
Nice explanation and it helps beginners to understand better about system testing…Great work.
This is Good for Everyone,
Good Explanation and it helps beginners to understand better about Testing…
Clearly described without any confusion.
This exactly matches with our organization.
Thank you for your effort and nice explanation.
Thank a lot
Nice explanation .
Very Nice
Hi,
Thanks for posting this article. Really helpful. Can you clear one doubt of me…Is there any difference between System testing and End to end testing? If not practically, then please tell me from interview perspective.
Is it required to have a System Test plan before starting System testing? Can’t we initiate our system testing with system test plan? Can we follow only Test Plan to conduct this testing? On which basis do we write system test cases? Please help me in understanding.
nice page ,tnx
it help a lot can you please send me a project so that i can use my knowledge on that project and test that project.
Excellent article. Can you please send me a demo project where I can apply all test cases??
Thankx
hi can u pls send me the demo project using these test cases
Hi! I’m a software student in Brazil, this article was a very nice explanation.
I would like to know if there is any curiosity, odds facs about system testing ?
Sorry about my poor english.
i need job in testing
nice explanation
nice. That was good. However, is it possible to list some systems we can actually apply these explanations on?
Thanks
Fantastic article I would like to read more article of this kind of article
good
nice concept
Got it. Thank you
It’s informative. I like how you have the section on Test Execution. The only section i would add would be the tools that you can use for system testing. Also, you need to clean up 1 of the sentences–there is a grammatical mistake: If you think any points is missed or to be added in System testing then you–this is the one.
Thanks!
Nice and very easy to understand.
Just need a Test Plan format.
Can you upload that please ?
URGENT REQUIREMENT from my side.
Checkout sample test plan template here, hope it will solve your requirement: https://www.softwaretestingclass.com/test-plan-template/