Skip to content

State Model and OrientDB instructions

Fernando Pastor edited this page Jun 11, 2023 · 5 revisions

State Model

TESTAR can infer a State Model while in a state s, it selects and executes an action a and obtains a new state s’. The transitions (s → a → s‘) are then stored in the model until the tool stops the exploratory process.

This model can be beneficial to visualize the action transitions, query the model and create offline oracles, or apply more intelligent action selection decisions as Reinforcement Learning (RL) strategies by remembering what states were discovered and which actions were executed.

Navigable state

In XR systems, the TESTAR agent can navigate around the virtual environment to reach the interactive entities. Because the entities that the agent observes are determined by an observation range, the position of the agent, and potential blocking elements, the exploratory FTA TESTAR needs to explore the XR environments' navigable areas while storing the entities' positions to learn which are reachable.

For this reason, the TESTAR state model is being extended with the concept of NavigableState. The objective of this new NavigableState is to allow TESTAR to explore the navigable positions of the environment as it saves the information of which entities are reachable, then executes interactive actions defined as NavigableAction (e.g., open a door by interacting with a button), to continue with a new exploration of the available state positions.

This development is temporally implemented in a separate branch. After further research that generalizes the requirements that define the concepts of navigable action, navigable area, and an appropriate definition of abstraction, the development will be merged into the master branch.
https://github.com/iv4xr-project/TESTAR_iv4xr/tree/master-navigable-state

OrientDB

TESTAR uses orientdb graph database https://www.orientdb.org/ , to create TESTAR State Models. Detected Widgets, Actions, States and their respective relations are recorded to this graph database.

Download OrientDB 3.0.34 GA Community Edition (August 31st, 2020)

https://www.orientdb.org/download

https://repo1.maven.org/maven2/com/orientechnologies/orientdb-community/3.0.34/orientdb-community-3.0.34.zip

Warning: Since August 2020 there is version 3.1.X of OrientDB, however TESTAR currently requires the use of versions 3.0.X

Install and configure OrientDB Server

In order to use the State Model feature it's advised to install a graph database on your machine or in a remote server.

Follow the installation instructions about how to configure TESTAR State Model on slide 28:

https://testar.org/images/development/TESTAR_webdriver_state_model.pdf

Also TESTAR HandsOn (Section 6) contains more information about State Model settings:

https://testar.org/images/development/Hands_on_TESTAR_Training_Manual_2020_October_14.pdf

When orientdb is started the first time. The root password needs to be configured. Make sure you remember this password.

In order to use the graphdb feature. A database must be created in OrientDB. To do this follow the following procedure:

  • Start the database server (ORIENTDB_HOME/bin/server.bat)
  • Start orientdb studio in a webbrowser http://localhost:2480
  • Choose "New DB" and provide the name, root user and password
  • Go to Security tab and create a new user (testar/testar) with an active status and the admin role

Using OrientDB graphdb on the local filesystem

OrientDB graph database can be used remotely or locally. Default TESTAR settings are predefined to connect with remote mode to a local OrientDB server:

	StateModelEnabled = true
	DataStore = OrientDB
	DataStoreType = remote
	DataStoreServer = localhost
	DataStoreDB = testar
	DataStoreUser = testar
	DataStorePassword = testar

Also is possible to connect at file level without deploy the OrientDB locally: OrientDB graph database can be use with the plocal connection to connect at file level.
Default TESTAR settings are predefined to connect with remote mode to a local OrientDB server:

	StateModelEnabled = true
	DataStore = OrientDB
	DataStoreType = plocal
	DataStoreDirectory = C:\\Users\\testar\\Desktop\\orientdb-3.0.34\\databases
	DataStoreDB = testar
	DataStoreUser = testar
	DataStorePassword = testar

Also is possible to configure OrientDB connection using TESTAR GUI (State Model panel) image