1. A method implemented by a computer for controlling a computer-implemented application for automated testing of the application, the method comprising: determining, by the computer, a current state of the computer-implemented application; determining, by the computer, a prerequisite action set for a target action, wherein the action set is a sequence in which a plurality of actions are performed and is generated by generating non- looping graphs of possible action paths; inducing, by the computer, said application into a predefined state associated with the target action of said application if said current state does not match said predefined state in accordance with predefined match criteria; selecting, by the computer, a path from a root application point to the target action having the fewest number of actions needed to perform the target action wherein the selected path comprises a subset of actions from a set of actions, wherein the subset of actions will induce the predefined state without using two or more actions included in the prerequisite action set; implementing, by the computer, the subset; causing, by the computer, said target action to be performed; identifying, by the computer, at least one candidate subset of zero or more actions of said set of actions, wherein performing said candidate subset of actions produces a state that matches a predefined state associated with said target action according to the predefined match criteria; selecting, by the computer, one of said candidate subsets that includes the fewest number of actions of said candidate subsets; and performing, by the computer, said selected candidate subset responsive to detecting a request that said computer-implemented application perform said target action; wherein if the identified candidate subset differs from the prerequisite action set, and the candidate subset produces the predefined state, it is determined that said computer-implemented application does not enforce the prerequisite action set.