项目名称: 基于捕获/重放机制的客户端JavaScript应用调试与分析研究
项目编号: No.61472407
项目类型: 面上项目
立项/批准年度: 2015
项目学科: 自动化技术、计算机技术
项目作者: 吴国全
作者单位: 中国科学院软件研究所
项目金额: 86万元
中文摘要: 尽管软件开发者不断提高代码的质量,部署发布后的软件仍然存在bug。对于客户端JavaScript(JS)应用,由于采用事件驱动的执行模型以及JS语言本身的动态特性,导致其在实际运行时更易出现错误。为提高部署后的客户端JS应用的可靠性,课题研究提出一套基于捕获/重放机制的JS错误远程调试方法与分析技术。具体内容包括:基于捕获/重放机制的客户端JS应用远程调试框架,支持直接在客户端进行确定性重放;基于检查点和选择性重放的客户端JS应用错误快速重现技术;基于统计调试和动态污点分析的客户端JS应用bug分析和定位技术,支持发现引起错误的相关语句和相关输入;基于可变重放技术的bug修复确认机制;并在关键技术研究的基础上开发相应的原型工具。开发人员可以利用这套方法和工具,对实际部署后的客户端JS应用错误进行调试和分析,从而提高客户端JS应用调试的自动化程度和调试效率,降低系统维护成本。
中文关键词: Javascript;Web应用;捕获/重放;错误重现;软件调试
英文摘要: Although the developers try their best to improve the quality of software, deployed softwares are still have bugs. For client-side javascript application, as its event driven paradigm and dynamic characteristics of javascript language, deployed client side javascript applications are prone to various program errors. To improve the quality of deployed client-side javascript application, this project aims to explore the mechanism to debug and analyze field javascript failures based on capture/replay. Specifically, we will propose a novel remote debugging framework for client-side javascript application, which supports to replay the execution directly on the client; a new approach to reproduce javascript failures quickly based on checkpoint and selective replay; new javascript fault localization techniques based on statistical debug to locate the relevant statements and locate failure-relevant input based on dynamic taint analysis, and a novel mutable replay mechanism to support patch validation. We believe the result of this project will further improve the reliability of client-side javascript application and reduce its maintenance cost.
英文关键词: JavaScript;Web Application;capture/replay;failure reproduction;debug