reAJAX - FBK | SE - Fondazione Bruno Kessler
reAJAX - FBK | SE - Fondazione Bruno Kessler
reAJAX - FBK | SE - Fondazione Bruno Kessler
- 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>: