System Testing | A Complete Guide

System Testing Guide

Earlier we have learned Integration testing in detail and in this article, we will learn System Testing and the following concepts

What is System Testing?

System Testing is a level of Software Testing that is performed on a complete and fully integrated application to evaluate the system’s compliance with its specified requirements.

Its purpose is to evaluate the end-to-end system specifications hence it is also known as End To End testing. It is to prevent application crashes and failures during its implementation of the production environment.

It verifies the completed system to ensure that the system works as intended or not.

It is performed by the Test Team that is independent of the Dev Team.

It is black-box testing.

It includes functional and non-functional testing.

ISTQB Definition of System Testing

A test level that focuses on verifying that a system as a whole meets specified requirements.

Practical Example of System Testing

Assume you are testing the functionality of a calling feature of a particular mobile phone (Say iPhone XE)
Prerequisites: You need to have iPhone XE and a SIM Card.

Both iPhone XE and SIM card are separately manufactured. Once both are ready you have to insert the SIM card in your iPhone XE to test it.
Inserting SIM Card in your iPhone XE allows you to do Integration testing whereas testing the calling feature after inserting the SIM Card allows you to perform System Testing.

When System Testing is performed?

System Testing

System testing is the third level of testing and it is performed in the following conditions

  • Done after completion of Integration Testing
  • Done before performing Acceptance Testing

Who performs System Testing?

Usually, testers perform System Testing.

System Testing Process

The system testing process varies from project to project. But still, the following steps are common in the process of system testing.

Steps followed to perform system testing are as follows

System Testing Process

  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.

What are the Types of System Testing

System Testing focuses on over 50 Types to validate the functionality and performance of an application. Check our detailed list of types of Software Testing.

Here I am going to provide frequently used types of system testing.

Prerequisites of System Testing:

  • Ensure whether the Unit testing is done or not
  • Ensure whether the Integration testing is done or not
  • The software should be completely and fully developed
  • Ensure the test environment is ready and it should be as close enough to the production environment.

Difference between System Testing vs Integration Testing

INTEGRATION TESTINGSYSTEM TESTINGIt is a low level testingIt is a high level testingIt is followed by System TestingIt is followed by Acceptance TestingIt is performed after unit testingIt is performed after integration testingDifferent types of integration testing are:
• Top bottom integration testing
• Bottom top integration testing
• Big bang integration testing
• Sandwich integration testing
Different types of system testing are:
• Regression testing
• Sanity testing
• Usability testing
• Retesting
• Load testing
• Performance testing
• Maintenance testingTesters perform functional testing to validate the interaction of two modulesTesters perform both functional as well as non-functional testing to evaluate the functionality, usability, performance testing etc.,Performed to test whether two different modules interact effectively with each other or notPerformed to test whether the product is performing as per user expectations and the required specificationsIt can be performed by both testers and developersIt is performed by testersTesting takes place on the interface of two individual modulesTesting takes place on complete software applicationHere, we validate the interace between the individual modules.Here, we validate the finished product.Testers need to understand the interlinked modules and their interaction.Testers need to understand the internal structure and programming language.It covers only functional testing.It covers both functional and non-functional testing.

This is all about System Testing. If you like this post, please share it with your friends.

Related Posts: