Monday, February 7, 2011

Geometric Testing Explained

We had a question asked on the forum today about our use of the term "geometric testing"

There's been talk about eValid offering another kind of testing based on using the eValid automated browser called "geometric testing". Could you kindly let everyone know what that is all about?

Yes, you are correct, and we're pleased to explain.

In testing some AJAX based web applications the "recorded from life" script may only work part of the time, due to the dynamic nature of AJAX. So the procedure used to prevent playback de-synchronization is to script extra commands into the script that synchronize the playbak, even in spite of AJAX asynchronous operation. At the same time, we often alter the "from life" commands so that they use DOM-dependent searching and checking, drawing from the rich set of structural testing commands that eValid supports.

We generally call this second level of script a "structural" test because it operates based on structural properties of the page.

When the application is built in a way that the usual structural cues are no longer constant -- most commonly seen when the ID tags in a page all change values between runs -- then something more is needed.

From the structural test we then generate a third variation of it that only uses references to fixed objects on the page -- objects that we know by experimentation don't change value from run to run or when the application is updated.

This extension of a structural test to one that does not rely on specific DOM values is then called a "geometric test" because it relies only on the properties of the geometry of the page...and not on any specific contents.

The sequence of eValid scripts then is natural --> structural --> geometric, in increasing order of independence of page specific facts and properties.

Here is a fully worked example that illustrates this basic idea: Oracle CRM On Demand -- Example #1. In this example a "from life" recording of with over 100 commands is converted into a 100% geometric test by adding just 7 new commands to replace some which rely on objects for which the ID tags change continually.

Look on our website for additional examples of pure-geometric web application tests.

No comments: