1. A method of regression testing a software application in an execution environment, wherein the software application interacts with a data storage, the method comprising: running the software application a first time; while running the software application the first time, monitoring interactions of the software application with a data source and a data destination, wherein monitoring the interactions includes: copying first communications between the software application and the data destination during the first running time; copying communications between the software application and the data source, wherein the data source and the data destination comprise data storage; and storing the copied data-destination first communications and the copied data-source communications in memory; running the software application a second time after running the software application the first time; while running the software application the second time, when the software application calls for data from the data storage, providing at least a portion of the copied data-source communications to the software application, and, when the software application writes data to the data storage, identifying second communications between the software application and the data destination; and comparing the identified data-destination second communications with the copied data-destination first communications to evaluate whether the software application has passed the regression test.