1. A computer-implemented method, the method comprising the steps of: providing a finite state machine (FSM), the FSM having a set of states and a set of breakpoints, the set of states including a start state and at least one acceptance state, each state connected to another state by at least one breakpoint; tracking during execution of a software application when each breakpoint occurs; transitioning the FSM from the start state to a first acceptance state as breakpoints occur; and suspending execution of the software application when the FSM reaches the acceptance state.