The major components of the Validation Testing Framework are the Test Agents, the Test Controller and the Test Manager. A Test Agent provides one or more testcases. The Test Controller manages the execution of tests provided by Test Agents. The Test Manager provides a user interface to select and execute a test script specifying configuration and test actions, and to view test progress and results.
A validation test can for example test the implementation of a device adapter to be tested for conformance to a profile or profiles that it implements. Validation tests are implemented as test agents in the validation test framework that is part of the device kit. The device kit provides a wizard that lets you create the projects for a new validation test. To run a validation test, a test manager servlet lets you select and run a test script, and review the test results.
Since the goal is to test adapters for physical devices, the framework supports manually assisted testing. As part of the test a tester can be prompted to assert certain conditions or perform certain actions.
The Test components will be instantiated and configured on the target system from a factory via the OSGi Configuration Admin service, using the mechanisms provided by SAT, or programmatically in a non-OSGi environment. TestAgents can be run stand-alone, or controlled by a TestController and a TestManager.
A TestAgent manages the configuration and running of a single JUnit Test, which can be either a TestSuite or a TestCase. Either a standard JUnit Test can be run, or a TestCase or TestSuite that extends base classes provided by the TestAgent framework.
The TestAgent framework provides the following base classes for implementing a TestCase and TestSuite:
The TestAgent also optionally provides the TestSuite and TestCase with a TestSynchronizationService that allows the test to interact with a test user for the purpose of taking manual actions and performing verification external to the system under test.
A TestController, of which one instance is deployed on the target system, creates, updates, and destroys TestAgent instances, as well as other components like profiles, device adapters and agents via the OSGi Configuration Admin service. TestAgent instances will be run by the TestController and TestAgent instances report progress and results back to the TestController. Tests will synchronize during their run with the test environment via the Test Controller.
Figure 1 depicts the TestAgent and TestController in relation to JUnit and the Edge Configuration, which are prerequisites of the framework. The diagram also shows (in gray), a concrete example Test based on the framework.

Figure 1 - TestAgent and TestController
As explained in the previous section, the TestController is responsible for running tests locally on a target. The TestController in turn, is managed by a TestManager, as is shown in the next diagram, Figure 2.

Figure 2 - TestController and TestManager
The TestManager is responsible for compiling and executing a TestScript, which is an XML specification of configuration actions and test actions to perform. The TestManager provides a user interface for interacting with the tester and presenting progress and results of running the test to the user. The TestManager sends commands to the TestController to process configuration action and to run individual tests. The TestController runs these commands asynchronously and calls back to the TestManager to report progress and result. The implementation of the user interface is decoupled from the TestManager so that different implementations of the user interface can be provided, like for example a web-based version and a version developed in the form of Eclipse tooling. A servlet-based implementation of the TestManager user interface is provided that runs on the target system itself.
The tester commands the Test Manager to run a test script. The test script is an xml document specifying:
Each test step specifies either:
The following steps describe what happens when running a test script.
Copyright © 2007 IBM. All Rights Reserved.