System Testing

System Testing System testing is a method of monitoring and assessing the behaviour of the complete and fully-integrated software product or system, on the basis of pre-decided specifications and functional requirements. It is a solution to the question "whether the complete system functions, in accordance to its pre-defined requirements?"

It's comes under black-box testing i.e. only external working features of the software are evaluated. It does not requires any internal knowledge of the coding, programming, design, etc., and is completely based on users-perspective.

When to go for system testing?

Key areas of System Testing:

Some of the aspects, on which system testing focuses are

  • Performance.
  • Security.
  • Recovery.
  • Interface.
  • Install-ability.
  • Usability.
  • Documentation.
  • Load/Stress.

Characteristics of System Testing:

  • In Software Development Life Cycle (SDLC), it is the first testing, that carries out the task of testing the software or system, as a whole.
  • Evaluates the functioning of the complete system, as per the pre-decided functional requirement.
  • Along with functional requirements, it also verifies and validates the business requirements and software's architecture.
  • Staging server may act as an environment, for carrying out the testing.
  • A type of black-box testing.
  • It may include, both functional and non-functional testing.
  • Reduces the troubleshooting and maintenance issue, after deployment.
  • Demands dedicated team of testers, independent of development team.

Types of tests performed during System Testing:

Following testing are conducted during system testing phase:-

  • Installation Testing:-

    It is used to check desired functioning of the software, after its successful installation, along with, all necessary requirements

  • Functionality Testing:-

    A type of black-box testing, that enables to assess and evaluate the proper functioning of the software, according to its pre-defined requirements.

  • Recoverability Testing:-

    It is achieved by, deliberate failure or crash of the software, to assess its ability of getting recovered, quickly.

  • Interoperability Testing:-

    It ensures, the ability of software to get compatible and interact with other software or system and their components.

  • Performance Testing:-

    It is done, to examine the response, stability, scalability, reliability and other quality metrics of the software, under different workloads.

  • Scalability Testing:-

    Software should be scalable, along with the increase in load, number of concurrent users, data size, etc. This, arises the need of scalability testing, which is conducted to take care of scalability related issues, with the software.

  • Reliability Testing:-

    This testing, assess the degree of the software, between two failures, and the time it takes to repair.

  • Regression Testing:-

    It guarantees the original functionality of the software, after each modification in it.

  • Documentation Testing:-

    This involves, evaluation of documentation artifacts, prepared before and during the testing phase, in order to assess the testing requirements, covers under documentation testing.

    Security Testing:-

    To assess, the security features of the software, so as to ensure, protection, authenticity, confidentiality and integrity of the information and data.

    Usability Testing:-

    Ensures software's user-friendliness feature and prevents end-users from issues or problems, while using and handling the software product.