1. A method of testing software having a plurality of data variables and function arguments therein, comprising: executing the software; identifying an address location for at least one of the variables or arguments used by the software; outputting any data stored in the address location to a test system to thereby monitor the data; and inputting data from the test system into the address location to thereby replace any data previously stored in the address location.