1. A software testing method comprising the steps of: providing software having a plurality of data variables and function arguments, wherein the software is software to be tested for errors; executing the software to be tested for errors; and while the software is executing, and without halting the execution, changing or replacing, within the software to be tested for errors, the data variables or function arguments during the testing process by: identifying an address location for at least one of the data variables or function arguments used by the software; outputting any data variables or function arguments stored in the address location to a test system to thereby monitor the data variables or function arguments; and inputting other data variables or function arguments from the test system into the address location to thereby replace any data variables or function arguments previously stored in the address location, wherein the data inputted into the address location is generated based on the data outputted from the address location during a previous iteration and the data inputted into the address location comprises a test vector of data generated based on data outputted from the address location during a previous iteration.