browsers due to implementation differences and conditional scripts
in web applications. Thus, automated comparison of this DOM tree
across browsers is non-trivial. Before performing any comparison,
our technique needs to match nodes between the different DOM
trees obtained by loading the same web page across various web
browsers. Our technique comprises of graph theory algorithms to
perform both matching as well as structural comparison. Since the
DOM tree can be mapped back to a source code element, it is helpful
for the developer if the technique can identify differences in the
corresponding tree nodes from different browsers. This information
can then be translated to the sections of the HTML page and
source code that generated it. Providing this information to developers
allows them to fix the issue effectively.
An important challenge is to compare the appearance of elements
on the web page. The DOM tree contains textual information about
an element on the web page. However, it does not contain information
about the appearance of the elements on the webpage. Therefore,
it is essential to be able to mimic the end users’ perception
by considering the screen capture data from the web page. For doing
so, the technique should first perform dynamic analysis of the
DOM tree to extract geometrical information about the web page
elements (e.g., dimensions, position etc.) along with a screen capture.
These can be used to extract visual features by incorporating
geometrical and computer vision distance metrics to find dissimilarities
between the elements. Once these features are extracted,
the technique should employ automated classification techniques
from machine learning to effectively decide if the issue is significant
enough to be reported. The point differences identified by
such a technique for each element identifies a symptom of a bigger
cross- browser incompatibility (XBI). We term such micro-level
differences as cross-browser differences (CBDs), which need to be
grouped across spatially or geometrically related elements to identify
XBIs. This is done by employing a custom clustering algorithm
as explained in Section 3.3. All XBIs reported for a pair of screens
across browsers are termed as screen-level XBIs
Web applications often have variable elements such as advertisements
and generated content (e.g., time, date etc.) which are different
across multiple requests. If such elements are not ignored, the
technique might consider them as changes across browsers thereby
resulting in false positives in the results. Hence, the technique
needs to find and skip such elements during comparison. A final
challenge is due to the inbuilt security measures in web browsers
that pose a technical challenge for the technique to transparently
extract information for comparison. The technique must overcome
such security mechanisms reliably and collect all information needed.
Overcoming the aforementioned challenges allow the technique
to identify XBIs in behavior of the web application (and individually
its screens) across two browsers. For each XBI, the technique
leverages the structural information from the DOM tree to locate
the broken element on the web page. This information helps the
developer to find related parts of the source code that generated
these elements and modify them to fix the issue.
2.2 Related Work
Recent years have seen a spate of tool and web-services that
can either visualize a web-page under different client-side platforms
(browser-OS combination) or, more generally, provide an
emulation environment for browsing a web application under different
client platforms. Some representatives of the former include
BrowserShots (http://browsershots.org) and BrowserCam
(http://www.browsercam.com), while examples of the latter
include Adobe BrowserLab [2], CrossBrowserTesting.com and
Microsoft Expression Web [11]. For a more detailed list, the in