TETware White Paper
You are here: TETworks > White Papers > TETware RT
TETware for Realtime and Embedded Systems
TETware is a Test Execution Management System that takes care of the administration, reporting and sequencing of tests and provides a single common user interface for all of the tests that you develop (more . . .). It will manage local, remote and distributed testing across a range of platforms including all UNIX, all Linux and 32-bit Microsoft Windows operating systems. That is all platforms that are POSIX.1 compliant.
On any of these platforms it requires the presence of a file system, to support the TETware directory structure, and the ability to carry out multiple processing. With realtime and embedded systems this is not always the case, so TETware has been modified to support testing on realtime and embedded systems that comply with POSIX 1003.13 profiles 51 to 53 (see figure). TETware is already able to manage tests operating under profile 54 as this profile supports both a file system and multiple processing.
POSIX 1003.13 Profiles
The required modification uses the TETware exec tool facility to run the components that would normally be run on a remote (target) system on the local (host) system In this way it acts as an agent for the test case which is actually running on the realtime system. This modification has been built on the Lite version of TETware, which is used for local testing, and so avoids the overhead of the more complex distributed TETware structure.
TETware Realtime Testing Architecture
Apart from the Exec tool this version of TETware operates just as any other. At the start of a test run the test controller reads the scenario file. It then executes the test cases described in the scenario file in the manner described in the scenario file, and the results are posted into a results file.
The Exec Tool provided in the Realtime implementation performs certain key functions:
Test Case Launcher
Provides the interface between the host system and the target system. This program is executed on the host system each time a test case is to be processed.
Test Case Terminator
In profiles 51 and 52 there is no exit() function. So it is necessary to cater for situations where normal program termination can be performed on the target system, or where termination must be accomplished by performing some action on the host system.
Target System Software
This software is derived from the thread safe version of the C TCM and API library that are contained within TETware. There are two versions of this software, supporting single or multiple processes on the target system. Neither version requires file system support.
Host / Target Communications
The host and target systems are connected together by a communication channel. Typically this will take the form of a serial link, although the use of a faster communication link (such as a network connection) is not precluded. A simple message-passing protocol is implemented over the communication channel. It is not anticipated that this protocol will need to perform error correction.
To detect a test case malfunction, after the realtime Manager has received the information from the exec tool, but before it calls the test case startup function, it starts a new thread. This thread is known as the "heartbeat thread''. The purpose of this thread is to send messages at (say) one second intervals to the exec tool, so that the exec tool knows that the test case is still running normally.
There are two versions of the API. One version is suitable for use on systems conforming to the profiles that do not support multiple processes (profiles 51 and 52), whereas the other version is suitable for use on systems conforming to the profile that supports multiple processes (profile 53). All the non-distributed API functions and global variables implemented within TETware are supported in each version with documented exceptions where functions are not supported by the profile(s) concerned.
User Defined Functions
It is necessary for the Managers to perform several operations that are implementation-defined. Functions to perform these operations must be provided by the user for each combination of host and target system.
The functions to be provided include the following:
All of these functions are provided, so you don't need to re-invent the wheel. Take the drudge out of realtime test development, use TETware RT to manage the testing on realtime and embedded systems.