diff --git a/README.md b/README.md index 3d7270d..39f2211 100644 --- a/README.md +++ b/README.md @@ -53,11 +53,14 @@ The actions executed by the user on GUI elements are represented by transitions. If an action has not been executed yet from a state, it leads to the so-called unknown state *s?*. The unknown state is a special state from which all actions could be executed. Whenever an action, which previously led to *s?*, is being executed and then leads to a newly discovered state, the NFA has to be updated. +The same action might lead from one single state to different states since the states do not capture the whole program behavior. +This makes the finite automaton nondeterministic. -The NFA is based on the UI model from ["Search-Based System Testing: High Coverage, No False Alarms"](http://www.specmate.org/papers/2012-07-Search-basedSystemTesting-HighCoverageNoFalseAlarms.pdf) (section "4.5 UI Model"). Originally, it has been used together with a genetic algorithm for search-based system testing, where it served two purposes: +The NFA is based on the UI model from ["Search-Based System Testing: High Coverage, No False Alarms"](http://www.specmate.org/papers/2012-07-Search-basedSystemTesting-HighCoverageNoFalseAlarms.pdf) (section "4.5 UI Model"). Originally, it has been used together with a genetic algorithm for search-based system testing, where it served three purposes: 1. Population initialization: to give precedence to unexplored actions. -2. Mutation: to repair test cases. +2. Mutation: to insert unexplored actions. +3. Mutation: to repair test cases which became invalid by the mutation. ## Concurrency