Tik-76.115 Individual Project: Guinea Pig
$Id: architecture_proto.html,v 1.7 1996/04/22 07:21:08 kepa Exp $

Testee UI - Architecture

This document describes the general architecture and internal logic of the Testee UI.

General overview

Testee UI is acting as a graphical user interface to the testee for recording his/her answers to test questions. It is implemented in Python using Tkinter graphical user interface module to help building the user interface.

Testee UI is an event driven system. It receives command from the test logic and changes the user interface according to those commands. When testee makes his/her decisions, Testee UI will forward them to Test Logic. Timeouts are needed in some tests and Testee UI is responsible for implementing them.

Parts of the user interface functionality run in three different processes. (See the picture below.) The Test Logic process contains stub routines to hide the details of interprocess communication from the Testee UI user. When Test Logic asks for a GUI, the GUI Server process starts another process. The started process is a GUI of the type requested by the Test Logic. The Test Logic will then open a communication channel to communicate with this GUI process. The GUI process implements the GUI testee sees on his/her screen.

[Image]

Class structures and interfaces

The programmer of the Test Logic only needs to know the Python interfaces of the Testee UI. These interfaces enable the programmer to use the GUI as if it were part of the Test Logic process.

The class stucture of Test Logic process Testee UI modules.

The class stucture of GUI server process Testee UI modules.

The class stucture of GUI process Testee UI modules.

Communication between processes

If you want to add new GUI types to Guinea Pig system, you also should know the communication protocols between Test Logic and GUI process.

You usually don't have to know about the communication done between the GUI Server and the Test Logic. If you are interested, you can find the documentation here .


· Testee UI Index · Document index · Guinea Pig ·