System Testing in Software Engineering

System Testing

  • System testing is a process of evaluating the integrated hardware and software system as a whole. System testing is a level of software testing in which a complete and fully integrated software product is test to verify that the system meets requirements and works as expected or not.
  • This testing comes under the black box type testing so only the working features are evaluated and there is no need to know about the internal structure or design of the code, internal path details. This testing is done from the user’s point of view.
  • System Testing is performed by software testing team that is independent of the development team to measure the quality of the system.
  • System testing is performed in the context of a system requirement specification (SRS) or a functional requirement specifications (FRS) or both. This testing contains both functional and Non-Functional testing of an application.
  • This testing is done after completing the unit and integration testing and before acceptance testing.

System testing focuses on following areas :

  • Performance
  • Load/Stress
  • Security
  • Usability
  • Recovery
  • Interface
  • Reliability


System Testing

Workflow of System Testing :

  1. Prepare a test plan
  2. Create test cases and test scripts
  3. Choose test data
  4. Execute test cases
  5. Defect reporting and retesting
  6. Repeat test cycle if required

System Testing Tools :

  • Selenium
  • Tosca Testsuite
  • Ranorex
  • Sahi
  • WatiN
  • Telerik TestStudio

Types of System Testing :

There are some system testing which is mentioned below :

  1. Performance Testing
  2. Load Testing
  3. Security Testing
  4. Scalability Testing
  5. Reliability Testing
  6. Usability Testing 
  7. Regression Testing
  8. Interoperability Testing

Advantages of System Testing : 

  • This testing includes end to end testing.
  • This testing verifies validation, verification, application architecture and business requirement.
  • System testing provides an effective environment which helps to understand the user perspective.
  • System testing prevents the defects which can occur when the system goes live.
  • It provides more reliable and efficient results.
  • This testing done proper evaluation of the system meeting the functional requirements.

Disadvantages of System Testing : 

  • Test cases are difficult to design if requirements are not clear.
  • All properties of the system can not be tested.
  • Only limited coverage of application as a software tester cannot target specific code section.