Today’s test automation technology in general relies primarily on the test object recognition aspect. This means that any testing tool is required to identify test objects of the application under test (AUT) and successfully recognize it during creation of the script and its playback. Conventional test automation technologies developed are based on API object recognition, where each singular client API's is correlated with the testing tool technology’s test object class. In the modern testing world, this approach is insufficient due to the existence of a variety of different clients for one application under test - ie browsers, client-server applications, etc. With most tools, you can only recognize one set of objects per script per AUT. Therefore, if you are automating different clients of the same applications (which may be different browser flavors or different version of client or native mobile apps) you will, in most cases, need to recreate the script. This approach tremendously increases maintenance requirements of test automation framework and makes it very costly and many times more impractical. This inevitably forces many organizations to roll back to manual testing rather than supporting test automation.