System Testing: What? Why? & How?

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.

Hierarchical levels of testing
Hierarchical levels of testing

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 testingSystem 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.

29 thoughts on “System Testing: What? Why? & How?”

  1. Excellent its very simple to understand. Thank you.
    I wanted a project to write some test cases. please can you send me one.

    Reply
  2. 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.

    Reply
  3. 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.

    Reply
  4. 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.

    Reply
  5. 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!

    Reply

Leave a Comment

Share This Post