1. A system comprising: a data storage component for storing a log of subroutine usage by an application under test; a processor coupled to the data storage component and configured to: analyze the log to identify subroutines used by the application based on actions in the subroutines, wherein the identifying subroutines comprises: segment the log into sequences of related actions based on a time period; map each sequence of related actions into a sequence of action classes; analyze the resulting sequences of action classes to identify a common substring; and output the common substring as one of the subroutines used by the application; compare the identified subroutines against a repository of subroutines applicable to the application; and designate a first subroutine in the repository as a matching subroutine wherein the first subroutine is used by the application.