论文部分内容阅读
随着互联网以及Web技术的快速发展,Web应用成为重要的信息获取和交流平台。应用开发者希望应用能在各种主流的浏览器平台上表现一致,但由于浏览器实现技术的差异以及对标准支持程度的不同,Web应用的跨浏览器不兼容性(cross-browser incompatibility,XBI)已成为Web应用开发者面临的严重问题。传统的人工检查需要大量的时间和精力,准确率不高且容易遗漏,因此,自动化的Web应用兼容性检测成为新的研究热点。 现有的兼容性自动化检测工具大多只考虑了用户交互事件而忽略了浏览器内部事件,无法保证在不同的浏览器平台上有相同的执行,导致检测结果出现大量误报和漏报。针对这个问题,本文设计并实现了基于捕获/重放的Web应用跨浏览器兼容性检测工具。其中,事件捕获/重放技术在跨浏览器兼容性检测的应用和增量式的兼容性检测算法是本文的研究重点。捕获/重放技术应用的关键问题在于如何在不同的参考浏览器平台上捕获事件并在待测浏览器上重放事件。本文采用原生的JavaScript实现事件的捕获/重放,以便该功能在不同的浏览器平台上使用,首先在事件捕获阶段记录Web应用在参考浏览器平台运行时产生的各种非确定性事件并通过代理服务器缓存访问数据,接着在重放阶段通过远程控制在待测浏览器平台中重放事件并使用代理服务器缓存的数据,保证Web应用在不同的浏览器平台上有相同的执行。增量式兼容性检测算法的关键问题在于冗余数据的处理和避免重复检测,本文提出了局部的变化区域的概念,通过数据处理得到局部变化区域,利用该区域检测页面中变化的元素来避免重复检测。本文通过捕获/重放技术保证Web应用在不同浏览器平台上有相同的执行,提高了检测准确率,基于增量式的兼容性检测算法,提高了检测的效率。 论文随后详细介绍了基于捕获/重放的Web应用跨浏览器兼容性检测工具——X-CHECK的设计与实现,并通过充分的实验验证了X-CHECK的准确率和高效率。