1. A method for automated software testing and validation, the method executed by one or more controllers, the method comprising: identifying a software application under test (AUT), the AUT including one or more processes having one or more windows including multiple objects and one or more data elements, the objects corresponding to respective visible graphical user interface (GUI) fields adapted to receive input; forming, for at least one of the one or more processes in the AUT, a test thread tree corresponding to each window, object and data element in the process; generating, from the test thread tree, a data structure enumerating a plurality of test cases indicative of the windows, data elements and objects in the AUT process, the data structure enabling different values for objects and data elements in the process and different types of actions for respective objects; and in response to learning objects in the AUT, automatically generating a parameterized script indicative of the plurality of test cases, the parameterized script including: (a) first string variables referring to respective ones of the windows in the AUT process and operable in the parameterized script to be modified by input data parameters to refer to different windows; (b) second string variables referring to respective ones of the objects in the AUT process and operable in the parameterized script to be modified by input data parameters to refer to different objects; and (c) third string variables referring to respective ones of the data elements and operable in the parameterized script to be modified by input data parameters to take on different data values associated with their respective data element; the parameterized script being operable to be executed by a test engine, wherein automatically generating a parameterized script further includes creating a variable name in the parameterized script for the string variables referring to the respective objects, and automatically linking the string variable to a set of variable values in the data structure.
1. A method for automated software testing and validation, the method executed by one or more controllers, the method comprising: identifying a software application under test (AUT), the AUT including one or more processes having one or more windows including multiple objects and one or more data elements, the objects corresponding to respective visible graphical user interface (GUI) fields adapted to receive input; forming, for at least one of the one or more processes in the AUT, a test thread tree corresponding to each window, object and data element in the process; generating, from the test thread tree, a data structure enumerating a plurality of test cases indicative of the windows, data elements and objects in the AUT process, the data structure enabling different values for objects and data elements in the process and different types of actions for respective objects; and in response to learning objects in the AUT, automatically generating a parameterized script indicative of the plurality of test cases, the parameterized script including: (a) first string variables referring to respective ones of the windows in the AUT process and operable in the parameterized script to be modified by input data parameters to refer to different windows; (b) second string variables referring to respective ones of the objects in the AUT process and operable in the parameterized script to be modified by input data parameters to refer to different objects; and (c) third string variables referring to respective ones of the data elements and operable in the parameterized script to be modified by input data parameters to take on different data values associated with their respective data element; the parameterized script being operable to be executed by a test engine, wherein automatically generating a parameterized script further includes creating a variable name in the parameterized script for the string variables referring to the respective objects, and automatically linking the string variable to a set of variable values in the data structure. 5. The method of claim 1 wherein generating the data structure further comprises gathering object values, each of the object values indicative of a particular process window, data element or object for a particular test case.