1. A computer program product residing on a non-transitory computer readable storage medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising: receiving a selection of one or more files for which to have one or more automated unit tests generated for an application under test; receiving an action in the application under test while the application under test is used; tracking behavior data of how the application under test responds to the action; wherein tracking is performed by inserting observer code using aspect oriented programming method, which tracks each method's interaction with its own objects and objects that are passed to it; determining that the behavior data of how the application under test responds is unexpected, and removing at least a portion of the behavior data; and generating an automated unit test of the one or more automated unit tests for underlying code of the application under test invoked when receiving the action based upon, at least in part, the behavior data of how the application under test responds to the action.