1. A method of testing a running application from a viewpoint of a user of a graphical user interface of the running application, comprising: defining, using a computer hardware processor, generic control implementations of the graphical user interface of the running application using a plurality of collection driven algorithms; defining, using the programmed processor, a plurality of hierarchical declarative function meta-objects describing operation of each of the plurality of the collection driven algorithms of at least one of an identity, property, collection or action meta-object associated with the generic control implementations, each of the plurality of declarative function meta-objects defining a predetermined result responsive to execution of at least one declarative function without providing any detail of how the predetermined result is achieved; receiving at least one abstraction layer object as input and generating a second at least one abstraction layer object as output responsive to the plurality of algorithms for an associated meta-object of a generic control implementation executing the received abstraction layer object; emulating user interactions occurring external to the running application between the user and the graphical user interface, each of the generic control implementations providing a technology-independent representation of graphical visual controls of the graphical user interface of the running application to emulate the user interactions with the graphical user interface occurring external to the running application.