23.01.2015 Views

reAJAX - FBK | SE - Fondazione Bruno Kessler

reAJAX - FBK | SE - Fondazione Bruno Kessler

reAJAX - FBK | SE - Fondazione Bruno Kessler

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Step 1b Selection of the GUI-events that must be monitorized since they can change the state<br />

of the selected mutator elements in the pa<br />

Section of the events in the GUI of the target application that can have some impact in the state of<br />

the inspector elements selected in the previous steps. Those events are called mutator elements for<br />

the target application. The selection of these elements is performed at the same time, by means of<br />

the same DOM-viewer and in the same way in which the inspector elements are selected. The<br />

difference is that when selecting a mutator element, the user is asked to click on the mouse three<br />

times in the selected element (i.e., one click to define the current element as an inspector; two clicks<br />

to define it as inspector and mutator, at the same time; and three clicks to select it as mutator).<br />

Step 2 For each inspector, definition of its abstraction function (ABS) that will be used by<br />

<strong>reAJAX</strong> to record the value reached at runtime by each inspector;<br />

When selected inspector and mutator elements, the next step consists in identifying the correct<br />

abstraction function for each selected inspector. Notice that at least one inspector and one mutator<br />

must be selected otherwise <strong>reAJAX</strong> does not allow the user to define the abstraction function and so<br />

trace application executions. If the user starts the ABS definition by means of the related <strong>reAJAX</strong><br />

menu, for each selected inspector, <strong>reAJAX</strong> shows a popup with two different areas:<br />

- left: it contains the list of the inspectors selected for which an abstraction must be<br />

defined. Notice that a checkbox is used by <strong>reAJAX</strong> to show whether the abstraction<br />

function for a given inspector element has been defined;<br />

- right: it contains several different types of abstraction functions (see below) provided by<br />

<strong>reAJAX</strong> and that can be customized by the user (note that this list of abstraction<br />

functions can be obtained by means of a double-click on one of the inspectors shown in<br />

the left side of this popup).<br />

Currently, <strong>reAJAX</strong> provides the following set of functions:<br />

NotNull: an element of a page exists at a given time (e.g., items of a list can<br />

be added at runtime);<br />

NotEmpty: an element is not empty at a given time (e.g., consider the text value of an<br />

element );<br />

Constant-value: strings and numbers in a textual field can assume a specific value or a<br />

range of specific values (e.g., a number can be greater or less than a constant).<br />

NumChildBool: true when an element contains a number (greater than 0) of other<br />

embedded elements (children in the DOM) of a specific type (e.g., a contains<br />

one or more rows);<br />

NumChildAbsolute: an element contains a given number of embedded elements of a<br />

specific type (e.g., a contains zero/one/two/etc. rows);<br />

RegularExpressionRules: the value of an element (e.g., its content or text) matches a<br />

regular expression. <strong>reAJAX</strong> allows to define an ordered set of pairs ``regular expression -<br />

abstract state value'' for each element of a page. If the value of an element matches one of<br />

the defined regular expressions its corresponding state-value is used to represent the<br />

current state of the element (e.g., the text into a can be composed only by<br />

lowercase letters ``[a-z]*'').<br />

For each type of inspector (i.e., HTML element) that can compose a Web page, a predefined<br />

abstraction is pre-configured by <strong>reAJAX</strong>. In this default configuration, the abstraction function can<br />

be used by the user without any additional effort. In the following we summarize the most frequent<br />

element types and their default abstraction provided by <strong>reAJAX</strong>:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!