1. A method of crawling a graphical user interface (GUI) based application, the method comprising: performing a first-time crawl of a first sequence of actions of a graphical user interface (GUI) based application, the first-time crawl being a first time that the first sequence of actions is crawled, the first sequence of actions being a prefix of a second sequence of actions that includes one or more additional actions that occur after the first sequence of actions, the actions included in the first sequence of actions and the second sequence of actions being inputs that cause the GUI-based application to move between states; extending the first-time crawl by the one or more additional actions such that the second sequence of actions is crawled during the first-time crawl; determining a first input/output sequence associated with the first sequence of actions based on the first-time crawl, the first input/output sequence including the first sequence of actions as a first input and including a first state as a first output; determining a second input/output sequence associated with the second sequence of actions based on the first-time crawl, the second input/output sequence including the second sequence of actions as a second input and including, as a second output, a second state of the GUI-based application that is encountered during the first-time crawl in response to performance of the second sequence of actions; and generating a model for the GUI-based application based on the first input/output sequence and the second input/output sequence.