The process of generating a range input values based on some constraints to fully explore a programs handling. For example, fuzzing a function that takes a numerical value might reveal it does not properly handle negative numbers even though it’s an allowed value.

Usage examples:

  • Detecting security vulnerabilities e.g. memory bugs

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.

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