System Under Test (SUT)

The term simply stands for the application being tested. The SUT varies in granularity and the testing is done accordingly. Granularity here states whether the system is being tested beginning with a single class reaching out to the whole application. Implementation of SUT depends on the various documents like modules, classes which are associated with one another and are required in testing the system.

An example of tests and their corresponding documents are as follows :

Types of test SUT example DOC example
Unit tests User service, invoice Product, Account, MailService
Integration Tests Data Access Object layer(ORM-based), Data Access Object layer(JDBC-based) Hibernate, Mysql etc.
End-to-end tests Whole Application External Web Service

Based on granularity levels, the SUT and DOC (Dependant on Components) are co-related. One System Under Test may need more than one DOC to work.

System Under Test

There are few key points that characterizes a SUT. These are as follows :

  • State - The state of a system is determined by its hosting computers, networking , operating system and various other components. As multiple software applications work on the same computer at a given point of time, the system under test's behaviour could be altered due to other components , may be through excessive CPU or memory usage.
  • Time -Time is an important factor for communication between components. Various communication mechanisms like the protocols(TCP/IP) used to communicate over the internet determine the time required for interaction among the components. Apart from the scheduled events, one may consider OS scheduler as a component, in which a clock is used to determine consecutive actions like timeout notifications, thread scheduling etc.
  • Failures -This deals with support for workloads. The system should be tested based on real world data or performing real world operations. The system under test's performance comprises of CPU, RAM, Storage space etc.
  • Virtualization -This method is about creating a virtual system for testing. That is, a system's snapshot is captured to portray CPU, RAM and disk state of the virtualized host. This offers the opportunity to replicate various test conditions, or analysing failures.

Conclusion :

The idea behind the concept of system under test is to test the system/application under various scenarios. The requirement specifications are mapped with the test cases or test scenario to verify whether all requirements are met. It is to verify that all the components are working in accordance with the specified requirements.