What is System Testing? What are its types?

System testing is a type of testing in which we tests the whole system. All the modules of the application are integrated and then it is checked that the application works as expected or not.

It is performed after integration testing and before acceptance testing. Now there may be one question in your mind. System testing is white box testing or black box testing. The answer is ” It is a type of black box tesing.

System Testing is a type of testing which tests the system as a whole.


Let us take the example of Activa which is widely used. The company does not produce activa as a whole product. Confused?

Let’s further understand the concept. Each component of the activa is manufactured separately like breaks, engines, mirror, wheels etc.

Every item is manufactured independently and it is tested independently that the product works as expected or not. This type of testing is known as Unit testing.

Now the units are combined with each other and it is checked that does it affects the functionality of other parts. Does it work as expected with the other product? For example, The breaks are combined with wheels. Now you will check that the wheel stops when the brake is pressed or not. This type of testing is known as Integration Testing.

When we attach all the parts of activa then the final phase of testing comes where we need to test the whole product. We will test the various function of the activa like activa breaks are working, the control is good, we are able to drive smoothly etc. This type of testing is known as System Testing.

Types of System Testing

  • Functional Testing
  • Recoverability Testing
  • Performance Testing
  • Scalability Testing
  • Security Testing
  • Documentation Testing
  • Usability Testing
  • Load Testing
  • Stress Testing
  • Requirement Testing
  • Compatibility Testing
  • Installation Testing
  • Configuration Testing
  • Reliability Testing
  • Regression Testing

How the System Testing process works?

  • The first step of the testing process is to create a testing environment.
  • The second step is to create test cases.
  • In the third step is to create the test data.
  • The fourth step is to execute the test cases which has been prepared according to the application.
  • The fifth step is to check for the test cases which has been failed. After this, the defects are logged.
  • In the sixth step is to apply regression testing.
  • In the seventh step the logged defects are fixed and still, defects are present in the application and again they are retested and in case of defects, the defects are again logged.

These are some steps which will give you some basic idea about the testing process.

Difference between System Testing and Acceptance Testing

System TestingAcceptance Testing
It is performed to check that the software application meets the specified requirements or not.It is performed to check that the software application meets customer requirements or not.
This type of testing is performed by testers and developers.Acceptance Testing is performed by testers, clients and stakeholders.
It is both Functional Testing and Non-Functional Testing.It is pure functional testing.
In this testing, we use demo input values.It uses actual real-time values provided by the user.
System Testing is a combination of both system and integration testing.Acceptance Testing is a combination of alpha testing and beta testing.
It is performed before acceptance testing.It is performed after system testing.
Defects which are found in this phase are considered to be fixed.Defects which are found in this phase are considered to be product failure.
It involves Load and stress testing as non-functional testing.Acceptance testing includes Boundary Value Analysis, Equivalence Partitioning and decision table as functional testing.

In next topic we will discuss what is performance testing and how you can perform performance testing with Jmeter.