1. A method for testing software, comprising: accessing a previous flow file which includes previous testing operations and corresponding results obtained during previous testing of a previous version of the software, wherein both the previous version of the software and a current version of the software include instructions for a graphical user interface with objects that are configured to receive values in associated fields; identifying the objects in the current version of the software; performing current testing of the current version of the software by: identifying a current object, retrieving an associated testing operation from the previous flow file, automatically testing the current object with the associated testing operation to create a corresponding current result, and wherein the current objects are tested in arbitrary order as they are encountered, without the presence of a static testing script; generating a current flow file which includes the current testing operations and the corresponding current results obtained during the current testing; comparing differences between the previous flow file and the current flow file; and evaluating whether or not the differences are consistent with design changes between the current version of the software and a previous version of the software.