Understanding JavaScript Event-Based Interactions with Clematis

Understanding JavaScript Event-Based Interactions with Clematis
复制标题

了解 JavaScript 与 Clematis 的基于事件的交互

DOI:
--
复制
发表时间:
2016
影响因子:
4.4
通讯作者:
K. Pattabiraman
K. Pattabiraman
中科院分区:
计算机科学1区
文献类型:
--
作者:
Saba Alimadadi;Sheldon Sequeira;A. Mesbah;K. Pattabiraman

文献摘要

被引文献

相似文献

Web应用程序已成为当今增长最快的软件系统类型之一。尽管它们很受欢迎,但了解现代Web应用程序的行为仍然是开发和维护任务中开发人员的挑战。挑战主要源于JavaScript语言的动态,以事件为导向和异步性质。我们提出了一种通用技术,用于在Web应用程序中捕获基于低级事件的相互作用并将其映射到高级行为模型中。然后将该模型转换为交互式可视化,代表了触发的因果事件和时间事件,相关的JavaScript代码执行以及它们对动态DOM状态的影响。我们在一种称为Clematis的工具中实现的方法使开发人员可以在三种不同语义级别的粒度层面上轻松理解其应用的复杂动态行为。此外,Clematis通过本地定位与测试断言相关的故障来帮助开发人员弥合测试用例和程序代码之间的差距。我们的工业受控实验的结果表明,克雷玛症能够将理解任务准确性提高157%,同时将任务完成时间减少47%。一项后续实验表明,克雷摩菌将开发人员的断层定位精度提高了两倍。
Web applications have become one of the fastest-growing types of software systems today. Despite their popularity, understanding the behavior of modern web applications is still a challenging endeavor for developers during development and maintenance tasks. The challenges mainly stem from the dynamic, event-driven, and asynchronous nature of the JavaScript language. We propose a generic technique for capturing low-level event-based interactions in a web application and mapping those to a higher-level behavioral model. This model is then transformed into an interactive visualization, representing episodes of triggered causal and temporal events, related JavaScript code executions, and their impact on the dynamic DOM state. Our approach, implemented in a tool called Clematis, allows developers to easily understand the complex dynamic behavior of their application at three different semantic levels of granularity. Furthermore, Clematis helps developers bridge the gap between test cases and program code by localizing the fault related to a test assertion. The results of our industrial controlled experiment show that Clematis is capable of improving the comprehension task accuracy by 157% while reducing the task completion time by 47%. A follow-up experiment reveals that Clematis improves the fault localization accuracy of developers by a factor of two.