EyeScoutLogo50h.png

Augmented Exploratory Testing

Table of Contents

EyeScout

Setup

Pure Java

Installing the Server

Starting the Server

License

Installing the Client

Connecting to a Server

Session

Starting a New Session

Setting Up the Home State

Cross Browser Testing

Performing a Session

Adding Checks or Issues

Bookmarks

Options

Follow

Navigate

Stopping a Session

Dashboard

Sessions

Coverage

Quality

Issues

Resolved Issues

States

Custom Reports

Suggestions

Users

Augmented Exploratory Testing

State

Action

Bookmark

Checks and Issues

Leaves

Technology

Multi-locators

Neural Network

Suggestions

Advanced Settings

EyeScout

EyeScout is a tool for augmented exploratory testing. A manual test session is enhanced by visual on screen instructions provided by a virtual assistant.

Setup

EyeScout is a client server solution and requires an EyeServer installation to connect with. This section contains information how to setup the client and server.

Note that the client and server should run on different desktops. Mac users may install and run the server on one user account while running the EyeScout client on another. The ideal setup is to install the EyeServer on a desktop in a virtual machine. You may however need to first connect to the server desktop using Remote Desktop or a VNC client so that the desktop is active during the session.

Pure Java

EyeScout is 100% pure Java and contains no native code. This means that you will be able to use it on any platform that supports Java.

Installing the Server

EyeServer should be installed on one or more machines that the test sessions are performed on. The EyeScout clients must be able to access the EyeServer machines. Follow the steps below to install the server on a new machine.

  1. Download the EyeAutomate setup file and remember to check to install the EyeServer.
  2. Start EyeServer (using the EyeServer.exe or EyeServer.jar file).
  3. Enter a license key using the Settings option on the Dashboard.

Starting the Server

Start the EyeServer by double-clicking on the "EyeServer.exe" or "EyeServer.jar" file or using the command:

"java -jar EyeServer.jar"

The server uses port 1234 by default. Change the port by passing a parameter to the "EyeServer.jar" file, for example:

"java -jar EyeServer.jar -p 1235"

Verify that the server is running using the hello command:

http://[server address]:[port]/hello

Stop the server by stopping the process or using the kill command:

http://[server address]:[port]/kill

License

EyeServer requires a license or a trial license key. A trial license may be provided by default by the setup program.

Purchase a license from: eyeautomate.com/purchaseeyeserver.html or request a trial license from: eyeautomate.com/download.html

Paste or type the license key into the License Key field on the Settings page. Press the Save button to activate the license key.

Installing the Client

The EyeScout client should be installed on one or more client machines that have access to the EyeServer. Follow the steps below to install the client on a new machine.

  1. Download and install the EyeScout setup file.
  2. Start EyeClient (using the EyeServer.exe or EyeServer.jar file).

Connecting to a Server

Login to an EyeServer from the EyeScout client. Specify the address to the server followed by the port according to the format:

http://<ServerAddress>:<ServerPort>

Optionally provide a password. The server does not require a password by default.

Session

This chapter explains how to perform a test session using EyeScout.

Starting a New Session

Start a new exploratory test session by clicking the Start toolbar button.

Enter a name of the product you are currently testing or select an existing product from the drop-down list.

Enter the current product version or release number. Can be a number, text or both.

Enter the name of the tester. This field is optional.

Select a Product View. Use Desktop to test desktop applications and any other option to test a web application using a Selenium enabled browser.

Note that you should not run the client and server on the same desktop since that might result in infinite recursion of the display.

Decide to use Selenium or not when testing a browser application. Select the option that works best with your application. Note that you might run into various problems depending on the application, browser version, Selenium version and platform. Selenium properties are recorded, regardless of this option, when applicable.

Home Locator is a web site, application or script to launch that takes the application to the Home state when the session starts.

Setting Up the Home State

A new session should always begin in the Home state. The Home is a well defined application state. An application that depends on information inside a database should reset the entire database before or when starting a new session. External systems should be mocked or be in a well defined state.

Web applications typically start at a certain web address. The Home Locator could, for example, look like this:

http://wikipedia.org

Some web applications rely on cookies. Set the “load_cookies” and “save_cookies” options, under Advanced settings, if needed. You may also save existing cookies using the SaveCookies command, for example:

http://localhost:1234/SaveCookies

A desktop application might be started using an exe or bat file on Windows. Simply set the Home Locator to the local path on the EyeServer machine, for example:

c:/programs/application.exe

A home state that requires a more advanced setup, like performing some GUI operations, can be handled using an EyeAutomate script or bundle. Create and maintain the script using EyeStudio. Export the script as a bundle (eye file) and place the file in the “scripts” folder in the EyeServer installation. The Home Locator should then contain a relative path to that bundle, for example:

scripts/myhomelocator.eye

Cross Browser Testing

A scenario can be run using several Product Views in order to test it in several browsers. Right-click an action and select the Relocate option to adjust an action, check or issue that has a different appearance or location than in other Product Views. EyeScout stores images and locations for each Product View. This makes it possible to run and maintain scenarios in several browsers at the same time using the same Project.

Performing a Session

Simply use the mouse or keyboard to perform the actions in order to complete your test session. Right-click a location on screen to perform some actions like RightClick or Move. Paste and copy text to/from the external machine just like you do on your local machine.

When performing another session the previous actions will be augmented on screen. Click on a blue circle to perform the action and to follow that path. The recommended action is larger than the other actions. You may deviate from a previous path at any time. Click the Unguided button to hide the augmented information.

Hover over an action to get information about the type of action, any parameters and the coverage. The coverage is displayed using a pie-chart where a full circle is 100% coverage of the actions below the selected one. A fully covered action is dashed.

Suggestions may appear as a pink circle. A suggestion is a suggested action from the system. The suggestion will turn into an action if manually performed. Auto exploration will never select a suggestion.

Click the Auto button to automatically click on the recommended actions until the coverage is 100%. Auto exploring will stop if a check or issue cannot be validated or there are no actions to select.

Adding Checks or Issues

You may add a check or an issue at any time by using the Insert drop-down button. Select an area using the mouse and add a description for an issue. Checks are green and issues are red by default.

A check or issue that cannot be validated are indicated by a yellow color. Remove or relocate a non-valid check. Resolve, remove or relocate an non-valid issue.

Bookmarks

A bookmark is a named state. The root state has the name Home, by default. Bookmarks are useful when replacing a state with a bookmarked state.

Click the Bookmark drop-down button and select an existing bookmark to replace the current state with the bookmarked state.

Click the Bookmark drop-down button and select New Bookmark to name or rename the current state.

Click the Bookmark drop-down button and select Remove Bookmark to remove the bookmark from the current state.

Options

Right-click an action, check or issue to view available options. Below is a list of options with a short description.

Option

Description

Perform

Performs an action. Same as left-clicking using the mouse.

Edit Text

Edits the text of a check, issue or action. Only Type and Paste actions can be edited.

Comment

Add or edit a comment on an action.

Relocate

Move the action, check or issue to another location. Left-click to select another location for an action. Left-click and drag to select another area for checks and issues.

Skip

Skip to the next state without performing an action.

Remove

Removes an action, check or issue from the current state. Child states or actions are not removed but may be impossible to reach.

Cut

Cut out an action. Any child actions, to the selected action, are not removed, they will move up to the current state.

Insert

Insert the next action before the selected action.

Resolve

Resolves an issue. The issue will be replaced by a check.

Right-click outside an issue, check or issue to view the action options.

Option

Description

Right Click

Insert a mouse right-click action.

Move

Insert a mouse move action.

Select

Select an option in a list or drop-down. Select will only work when using Selenium and when a list or drop-down is in focus.

Paste

Insert a paste action. Note that you may also simply use the keyboard to paste the content of the clipboard to the external system.

Comment

Add a comment for the next performed action. This makes it possible to comment while recording instead of commenting when performing the same scenario again.

Go Home

Insert an action that triggers the Home Locator. This takes you back to the Home state.

Start

Start a new website, application or script. Specify an URL, like “http://wikipedia.org”, to go to a website. Specify a path, like “c:/apps/myapp.exe” to open an application or a file associated with an application. Specify a script, like “scripts/myscript.txt” or “scripts/mysuite.eye” to run an EyeAutomate script.

Follow

Click the Follow button and select a previous session to follow. This will augment the path of a previously recorded session. Note that you may also press the Auto button to perform the path automatically.. Follow will stop when the path is completed. You may only begin to follow a path from the Home state.

Navigate

Click the Navigate button and select an issue or bookmark to navigate to. This will augment the shortest path to the issue or bookmark. Note that you may also press the Auto button to automatically move towards the target. Navigation will stop when the target state is reached.

Stopping a Session

Before stopping the session it might be a good idéa to go back to the Home or another known state in order to enable regression testing. Use the Bookmark menu to select the current state. The last performed action will now go to the selected state. You may alternatively right-click and select the GoHome option to perform the Home Locator.

Stop the session by pressing the Stop button. You may also temporarily pause a session by pressing the Pause button. Continue recording the session by pressing the Resume button.

Dashboard

The dashboard displays the current status of the test effort. You may also use the dashboard to change settings, generate reports, start sessions or running scripts. Select the Dashboard option from the View drop-down to open the dashboard. The status displayed is for the current Product and Product Version. Select the Settings option to change the Product or Product Version.

In the example screenshot above we have 5 sessions performed in the current Product Version with a total state coverage of 81%. We have one remaining issue and the Quality is High since we have high coverage and a low defect rate when compared to previous Product Versions.

Sessions

Select the Sessions option to view all the sessions performed on the current Product Version. Select the View button to view all the steps performed. Select the Run button to start a new auto session performing the same scenario again in the same order as before.

Coverage

Select the Coverage option to view the coverage of all bookmarked states in the current Product Version. Select the Run button to start a new auto session that focus on covering the selected bookmark.

Quality

The Quality option shows the quality of the current Product Version. Select the Quality option to view the relative quality of each Product Version. The table below shows how the quality is estimated. Reported Issues are the number of issues created in a Product Version.

Reported Issues

Coverage

Quality

Low (less than average)

Low (less than average)

Unknown

Low (less than average)

High (higher than average)

Low

High (higher than average)

Low (less than average)

Low

High (higher than average)

High (higher than average)

High

Issues

Select the Issues option to view all reported issues, in any Product Version, that are still unresolved. Use the plus or minus buttons to adjust the priority. Click the Resolve button when the issues has been resolved. It will then be moved to the Resolved Issues list. Note that you may also resolve an issue when in a session.

Resolved Issues

Select the Resolved Issues option to view issues resolved in the current Product Version. Click the Unresolve button to move the issue back to the Issue list.

States

Select the States option to view the tree of states created for the current Product. Traverse through the tree by clicking on the next state links. Actions with a large weight are manually performed more often than small weights.

Custom Reports

Custom reports like the Issues and Sessions reports are server plug-ins and provided with their Java source code in the “plugin” folder. The Sessions Report generates one Word document per session for the current Product Version. All actions and issues are included. Check are included only if the text has been modified. The Issues Report generates one Word document for each issue. The report contains all the steps needed to reproduce the issue.

Suggestions

Suggestions are custom server plug-ins automatically loaded from the “plugin” folder. Suggestions are pink circles that suggest an action to perform. A suggestion will only become an action if a user manually performs it. Auto exploration will never select any suggestions.

Users

EyeScout has been designed to support four different types of users described below:

Name

Description

Needs

Scenario Recorder

Uses EyeScout to record user scenarios that can be used for creating tutorials.

A cost efficient way of documenting user scenarios.

Exploratory Tester

Uses EyeScout for manual exploratory testing and for reporting issues.

An efficient way of exploring new untested scenarios in order to discover remaining issues.

Smoke Tester

Uses EyeScout for rapid development and maintenance of a smaller smoke test suite.

To quickly check that the most used features are still working from a user perspective.

Regression Tester

Uses EyeScout for creating and maintaining a regression test suite.

To check that all important features of the application are still working from a user perspective.

Augmented Exploratory Testing

This chapter describes the basic theory and concepts around augmented exploratory testing. Read the research material for more detailed information.

State

An application state is a known condition of all internal and external variables that might have an impact on the output from the application under test. The initial state is called Home.

Action

A user action takes you to another application state. A user action is anything performed by the mouse or keyboard like clicks and typing on the keyboard.

Bookmark

A bookmark is a named state. The root state is called Home, by default.

Checks and Issues

A state may contain any number of checks and/or issues. Checks and issues are validated when you enter a new state. Checks are green when validated and yellow when there is a deviation. Issues are red when validated and yellow when there is a deviation.

Leaves

A state that does not contain any actions are called leaves. Leaves should be avoided to make regression testing possible. Right-click and insert the Go Home action or select an existing bookmark from the Bookmark drop-down. You may also replace the leave state with a bookmarked state using the Bookmark drop-down button.

Technology

EyeScout uses the latest available technologies in the areas of test automation, image recognition and AI.

Multi-locators

EyeScout uses multi-locators in order to locate and check widgets in a reliable way. The following techniques is used when locating widgets:

Technique

Description

Absolute coordinates

Absolute x and y values and sometimes width and height relative to the upper left corner of the display.

Relative coordinates

Relative distance from the previous action.

Image recognition

An image to find or check a location. A location will be updated if the system finds that a widget has been moved to another location.

Selenium properties

Widget properties like id, name, text and href will be detected and used when using web applications.

OCR

Optical Character Recognition for reading a value from the screen.

Neural Network

The state tree resembles a neural network that is automatically updated by every session. Weights are strengthened when an action is manually performed. New paths are added when a user decides to explore new scenarios.

Suggestions

Suggestions are custom algorithms that help the tester in several ways like:

Suggestion

Description

Similar Scenario

Suggest to reuse actions from similar scenarios. This will make the maintenance of the tests a lot easier.

Boundary Value Analysis

Suggest important boundary values to try based on previously entered data in a field. This prevents the tester from forgetting to test an important value.

New Examples

Suggest new examples based on the previously entered  examples. This will make it easier for the tester to create new scenarios.

Next Value

Learning from previous examples and suggest, for example, the next date in the correct format. This makes it easier and faster to enter field values.

Advanced Settings

Below is a list of settings that can be used for detailed configuration of the server.

Use the SetServerProperty command for setting the properties. The properties are stored in the “webservice.properties” file in the “settings” folder.

Set a property using the format:

http://<host>:<port>/SetServerProperty?key=<PropertyName>&value=<PropertyValue>

Property

Description

weight_threshold

Actions below this threshold are hidden from the user. The default threshold is 10 percent.

weight_factor

Increase this factor to value action weights more. 1 by default.

coverage_factor

Increase this factor to value coverage more. 1 by default.

random_factor

Increase this factor to value random decisions more. 0 by default.

coverage_count

The number of steps to give coverage bonus. The count is reduced by one for each step.

load_cookies

Set to “yes” to to load cookies when starting a browser session. Default “yes”.

save_cookies

Set to “yes” to save cookies when ending a browser session. Default “yes”.

use_selenium_properties

Set to “yes” to use Selenium properties when finding and performing actions. Default “yes”.

record_selenium_properties

Set to “yes” to record Selenium properties when exploring. Default “yes”.

use_selenium_browser

Set to “yes” to use Selenium without a desktop. This option does not work with all browsers. Default “no”.

simulate_activity

Set to “yes” to trigger a keyboard action (a shift press and release) every 5 minutes to prevent the screen saver. Default “yes”.

close_browser_shortcut

The shortcut to type to close the browser in the end of a desktop session. Default "[META_PRESS]w[META_RELEASE]" or "[CTRL_PRESS]w[CTRL_RELEASE]" on a Mac. Insert the key [PAUSE] to include a one second delay.

close_app_shortcut

The shortcut to type to close an application in the end of a desktop session. Default "[META_PRESS]q[META_RELEASE]" and "[ALT_PRESS][F4][ALT_RELEASE]" on a Mac.Insert the key [PAUSE] to include a one second delay.

Below is a list of settings that can be used for detailed configuration of the currently active product.

Use the SetProductProperty command for setting the properties. The properties are stored in the “product.properties” file in the product folder under the “data” folder.

Product properties inherits the current server property value. Assign values that affect all products using server properties.

Set a property using the format:

http://<host>:<port>/SetProductProperty?key=<PropertyName>&value=<PropertyValue>

Property

Description

load_cookies

Set to “yes” to to load cookies when starting a browser session. Default “yes”.

save_cookies

Set to “yes” to save cookies when ending a browser session. Default “yes”.

use_selenium_properties

Set to “yes” to use Selenium properties when finding and performing actions. Default “yes”.

record_selenium_properties

Set to “yes” to record Selenium properties when exploring. Default “yes”.

use_selenium_browser

Set to “yes” to use Selenium without a desktop. This option does not work with all browsers. Default “no”.