1. An improved system for testing complex software driven applications, the system comprising: at least one computer; a user interface device for creating and maintaining a plurality of test cases and associated test data for the application, wherein the test cases and test data are reusable; a scripting device comprising a plurality of software testing tools, wherein the scripting device translates natural language calls into software test tool specific calls for driving the plurality of software testing tools; and a storage device for maintaining system settings, system data, test cases, and test data;