UI exploration generally involves extracting features (the
widget hierarchy) from the displayed UI and iteratively constructing
a model or a state machine of the application’s UI
organization, i.e., how different windows and widgets are
connected together. A black-box (or grey-box) technique, such
as AppsPlayground, may apply heuristics to identify which
windows and widgets are identical to prevent redundant exploration
of these elements. Window equivalence is determined by
the activity class name (an activity is a code-level artifact
in Android that describes one screen or window). Widget
equivalence is determined by various features such as any
associated text, the position of the widget on the screen, and
the position in the UI hierarchy. In order to prevent long,
redundant exploration, thresholds are used to prune the model
search.