This document describes the testing phases inside the integration testing phase. It divides integration tests to subsystem tests that can be performed either one at a time during integration development or on bigger chunks when integration advances fast. The target of these tests is to pinpoint the bugs to as small a scope as possible.
To support this, even finer-grained methods can be used to pinpoint faults in system. These methods can be implemented with options system implemented in schemestation C includes. These options can be used to turn certain features (for example, heap expansion or garbage collection, or certain optimizations) on and off.
The heap, VM, scheduler and the compiler form the very core of the system. Thus, the first tests performed to the system are:
The Addressing-messaging tests test that the heap, VM and compiler co-operate with the address and messaging systems as specified, messages can be sent and received to self and other agents, the message queues function as specified, and the (internal) messaging system doesn't drop the messages or route them to wrong agents. Thses are mostly checked at the unit testing phase, but following tests are performed to find potential errors in the integration phase:
The networking tests are performed to test networking interface functionality, system stability and potential limits of functionality with all the systems tested above. Tests include:
The domain kernel agent is the topmost authority in a SCHEMESTATION domain. After domain kernel agent implementation, following tests are performed:
The scheduler and addressing agents are tested the same way as the domain kernel agent.
The results map one-to-one with the plans above.
Name | Done | Succesful | Total |
---|---|---|---|
Heap-VM-Scheduler-Compiler Tests | 6 (100%) | 5 (83%) | 6 |
Addressing-Messaging Tests | 4 (100%) | 4 (100%) | 4 |
Networking Tests | 2 (100%) | 2 (100%) | 2 |
Domain kernel agent | 4 (100%) | 4 (100%) | 4 |
Test cases (first part: (D)one, (U)ndone, (I)ncomplete, second part: (S)uccess, (U)nsuccess, (I)ncomplete (F)atal):
Name | Status | Result | Comments |
---|---|---|---|
The agent linearisations can be loaded into the virtual machine | D | S | |
Incorrect linearisations are detected and refused | D | I/U/F | Incorrect linearisations can crash the heap. |
Linearisations can be run on the system. | D | S | |
Functionality of the system is tested using different Scheme test programs. | D | S | |
The Scheduler is tested | D | S | |
Termination of agents (HALT) is tested. | D | S |
Name | Status | Result | Comments |
---|---|---|---|
Different messages are sent between one (to self), two and several agents. | D | S | |
Behavior of messages sent to nonexistant agents are tested. | D | S | |
System behavior with dying agents measured | D | S | |
The order relations of the messages is measured | D | S |
Name | Status | Result | Comments |
---|---|---|---|
Addressing-messaging tests extended to the network environment | D | S | |
Cross-architectural compability testing (Alpha vs. Intel), | D | S | (intel, alpha) |
Name | Status | Result | Comments |
---|---|---|---|
The operations defined at OS definition 4.10 are tested. | D | S | |
The operations are tested with illegal values. | D | S | |
Migration of agents from domain to another is tested. | D | S | |
As always, stress and stability tests are performed. | D | S |