1. A processor-implemented method for testing a graphical user interface (GUI), comprising: a processor providing a pattern of a collection of generalized graphical user interface object types, wherein the pattern of the collection of generalized graphical user interface object types comprises a nested collection of controls that performs a specific type of GUI-based action; the processor labeling the nested collection of controls with a combination of control names for each control from the nested collection of controls located in a GUI model, wherein the nested collection of controls is named in accordance with both a hierarchical order and a non-hierarchical order of the nested collection of controls as ordered within a page hierarchy of a real GUI, and wherein the GUI model is a model of both a discovered real singular control from the real GUI as well as virtual controls that represent controls not present on said GUI page; the processor searching the GUI model of the real GUI for instances of collections of interface objects matching the pattern, wherein instances of the collections of interface objects are identified by known collections of the real singular control and the virtual controls from the GUI model; the processor providing a test script of test steps, wherein the test script runs commands that follow a form of controls from the GUI model; the processor providing data model rules that describe actions applied to the GUI model, wherein the actions result in expected outcomes; the processor providing a data model for the GUI model, wherein the data model is an abstract model of data and objects being handled according to the data model rules; and the processor selectively applying the test script or the data model rules to test identified instances of the collections of interface objects from the GUI model based on whether a test system for the GUI model utilizes the data model to model user interactions with the GUI, wherein the data model rules are applied if the GUI model utilizes the data model, and wherein the test script is applied if the GUI model does not utilize the data model.