UI Crawling

From an entry point uncover all of the possible actions a user could take in a user interface. Actions are anything that causes the state of the application to change.

This could be used to automatically generate the plan space for use with graph analysis or working on planning problems (e.g. what are all the ways a user can accomplish a specified goal). You could use the state machine with a planning AI algorithm to generate optimal sequences of actions to achieve the specified end state.

Is this possible to do just by looking at code and not running the full browser session e.g. static analysis?

See also:

  • The Fuzzing Book (specifically GUICoverageFuzzer which explores the user interface to generate a grammar and state machine)
  • Fuzzing

It seems possible to generate all states of a purely functional UI so that it can be analyzed and audited.