1. A method of testing a software application, the method comprising: executing, by a computer system, a pre-defined test script, the pre-defined test script defining one or more tests executable on a plurality of different software applications without modification to the one or more tests of the pre-defined test script, each of the plurality of different software applications providing a user interface, the user interface of each application having a different hierarchical structure of a plurality of windows and objects within the user interface; initiating, by the computer system, a first software application of the plurality of different software applications from the pre-defined test script; building, by the computer system with the pre-defined test script, a temporary map of the first software application, the temporary map of the first software application comprising a map of the hierarchical structure of the user interface of the first software application based on execution of the first software application by the pre-defined test script; testing, by the computer system, the first software application with the one or more test of the pre-defined test script based on the temporary map of the first software application; initiating, by the computer system, a second software application of the plurality of different software applications from the pre-defined test script; building, by the computer system with the pre-defined test script, a temporary map of the second software application, the temporary map of the second software application comprising a map of the hierarchical structure of the user interface of the second software application based on execution of the second software application by the pre-defined test script; and testing, by the computer system, the second software application with the one or more tests of the pre-defined test script based on the temporary map of the second software application without modification to the pre-defined test script.