The software follows a two-tier architecture model. It consists of two distinct layers: client and agent, as shown below.
Client layer: Consists of the user interfaces for the software. Three different user interfaces are supported: the GUI, TTY, and CLI.
Agent layer: This layer consists of all the tests for testing the hardware, and a harness, which manages the tests. The harness also handles chores like the following:
Logging of messages
Handling of commands coming from different user interfaces
Updating status messages
Probing hardware
The harness (vtsk) acts as the control center for a testing session. The harness is the entity that controls and manages the complete working of a testing session. The harness performs functions like:
Starting and stopping tests
Handling commands from the user interfaces
Scheduling
Like the test, the vtsk process needs to be run on the machine under test.