客户端JavaScript错误检测关键技术研究

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:koutoumonnokoro
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,JavaScript作为客户端Web应用最受欢迎的编程语言,受到了学术界和工业界的广泛关注。客户端JavaScript具有三个显著特性:1)弱类型与高度动态;2)事件驱动;3)操作复杂DOM对象。一方面,上述特性导致客户端JavaScript易于出现多种错误,如数据类型错误、DOM访问错误等。另一方面,这些导致自动化检测客户端JavaScript错误存在一系列挑战。针对客户端JavaScript错误及相关自动检测问题,本文从以下三个方面展开研究:  1)基于代码统计分析的JavaScript API接口规范构建:基于API接口规范检测API误用是检测JavaScript类型错误的一类重要方法。然而,由于JavaScript的弱类型特性,JavaScript API缺乏形式化的接口规范。本文提出一种从大量API使用实例中抽取API接口规范的方法。该方法利用类型推理机制推测API的返回值的类型,并结合代码统计机制,推测无法利用类型推理方法得到的参数及属性的类型。在真实Web应用上的实验表明,本方法可以有效构建JavaScript API的接口规范。  2)基于事件代理模式的DOM事件处理函数识别:作为事件驱动应用,事件及其相应处理函数的识别是客户端JavaScript分析的基础。但是不同的JavaScript类库采用不同的事件处理机制,缺乏统一标准,导致难以识别客户端JavaScript应用上的事件处理函数。本文分析JavaScript类库的典型事件代理模式,基于其具有的共同代码特征,利用动态程序分析方法识别事件处理函数。实验结果表明,本方法可以有效识别主流类库注册的DOM事件处理函数。  3)面向DOM不可访问错误的测试事件序列生成:DOM不可访问错误是在特定DOM树下由于JavaScript代码试图访问不存在的DOM元素或属性或方法、或调用不可访问的方法引起的。本文首先分析DOM事件与其操作DOM元素之间关系,然后建立DOM事件与DOM元素、属性、方法之间的依赖关系,进而构造可能导致DOM不可访问错误的事件序列。实验结果表明,本方法可以有效生成触发DOM不可访问错误的事件序列。  本文的研究工作对于类库设计人员完善API设计、开发工具设计人员实现客户端JavaScript错误检测和调试均具有实际参考意义,对于后续研究工作也具有借鉴意义。
其他文献
电子技术的飞速发展催生了大批新型应用,如嵌入式系统、航空航天等,和传统的基于磁盘存储设备的应用相比,这些应用领域对数据存储提出了更高的要求。在这种背景下,闪存技术应运而
由于软件的灵活性、复杂性不断提高,软件安全漏洞问题日益加剧。一旦被利用进而实施系统攻击,可能带来不可估量的损失。软件漏洞检测是保障软件安全性的有效手段之一。因此,本文
随着无线通信技术和传感器技术的高速发展,一种新的计算模式——普适计算渐渐出现在人们视野中。它致力于将信息空间和物理空间进行融合,实现一种无处不在却处处不可见的信息处
调试是软件开发中比较复杂和困难的任务。基于频谱的缺陷定位方法通过插桩程序获得覆盖信息来推荐语句检查集,能帮助程序员更快地在规模庞大的软件中找出错误语句,从而降低了程
近几十年来,随着现代经济的发展和计算机技术的进步,数据生成的速度越来越快,数据具有的主观色彩也越来越浓,数据的存储量也越来越大,如何从这些海量的信息中挖掘出用户最感兴趣的
给定一条查询,近似查询返回数据集中与该查询相似的所有实体。在关系数据中,每个实体被表示为一个单一的记录,因此,使用基于记录级别的相似度评价方法即可用来评价关系数据中实体
定位有竞争力产品在微观经济学中有广泛的理论意义。微观经济学的一个中心思想就是如何优化配置资源,实现自身利益最大化。通过定位有竞争力产品,可以指导生产者利用有限的资源
游戏中的人工智能研究一直是人工智能领域的研究热点,在多种实际游戏场景中取得了很好的效果。本文分析了棋牌类游戏智能的研究现状,针对国内的热门牌类研究,对非完全信息下的牌
可靠组播是建立在组播传输之上的一种可靠传输机制,由于不同的组播应用对数据传输的要求也不尽相同,所以目前还没有一种可靠组播协议能够满足所有情况。  为了发展我国具有自
随着软件产业的迅速发展,软件系统的规模和和结构日益复杂,人们对于软件产品的质量要求也越来越高。基于代码的审查技术和测试技术是常见的软件质量保障技术。代码审查过程的