Understanding JavaScript event-based interactions
@article{Alimadadi2014UnderstandingJE, title={Understanding JavaScript event-based interactions}, author={Saba Alimadadi and Sheldon Sequeira and Ali Mesbah and Karthik Pattabiraman}, journal={Proceedings of the 36th International Conference on Software Engineering}, year={2014} }
Web applications have become one of the fastest growing types of software systems today. Despite their popularity, understanding the behaviour of modern web applications is still a challenging endeavour 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…
Figures and Tables from this paper
68 Citations
Understanding JavaScript Event-Based Interactions with Clematis
- Computer ScienceACM Trans. Softw. Eng. Methodol.
- 2016
The 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 and helps developers bridge the gap between test cases and program code by localizing the fault related to a test assertion.
Understanding Asynchronous Interactions in Full-Stack JavaScript
- Computer Science2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)
- 2016
This work proposes a technique for capturing a behavioural model of full-stack JavaScript applications' execution that is temporal and context-sensitive to accommodate asynchronous events, as well as the scheduling and execution of lifelines of callbacks.
Directed test generation and analysis for web applications
- Computer Science
- 2017
This dissertation has focused on advancing the state of the art in testing and maintaining web applications by proposing a new set of techniques and tools and evaluating the effectiveness of the presented techniques in terms of fault detection capability and code coverage for test generation, and in Terms of accuracy for code smell detection.
Understanding behavioural patterns in JavaScript
- Computer ScienceSIGSOFT FSE
- 2016
A new technique that adopts bio-informatics algorithms to extract sequences of actions from execution traces that form higher-level patterns is proposed that will enhance the scalability of the methods proposed.
Hierarchical Abstraction of Execution Traces for Program Comprehension
- Computer Science2018 IEEE/ACM 26th International Conference on Program Comprehension (ICPC)
- 2018
This work proposes a fully automatic approach to present a semantic abstraction with different levels of functional granularity from full execution traces to bridge the cognitive gap between the source code and detailed models of program behavior.
Fast reproducing web application errors
- Computer Science2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE)
- 2015
This work develops a novel dynamic slicing technique that can remove events irrelevant to the error reproducing that can faithfully reproduce errors with an average reduction rate of 96%.
Hybrid DOM-Sensitive Change Impact Analysis for JavaScript
- Computer ScienceECOOP
- 2015
This work proposes a DOM-sensitive hybrid change impact analysis technique for Javascript through a combination of static and dynamic analysis that incorporates a novel ranking algorithm for indicating the importance of each entity in the impact set.
Understanding Dynamic Software Behavior with Tools for Retroactive Investigation
- Computer Science
- 2015
This dissertation demonstrates that when integrated as part of a browser engine, deterministic replay is fast, transparent, and pervasive; and these properties make it a suitable platform for new program understanding tools that rely on the ability to capture a program execution and revisit past program states within it.
On the detection, localization and repair of client-side JavaScript faults
- Computer Science
- 2016
An empirical study of real-world JavaScript bugs was conducted, finding that most of these bugs are DOM-related, which means they occur as a result of the JavaScript code’s interaction with the Document Object Model (DOM).
Unravel: Rapid Web Application Reverse Engineering via Interaction Recording, Source Tracing, and Library Detection
- Computer ScienceUIST
- 2015
Unravel is an extension of the Chrome Developer Tools for quickly tracking and visualizing HTML changes, JavaScript method calls, and JavaScript libraries, and injects an observation agent into websites to monitor DOM interactions in real-time without functional interference or external dependencies.
References
SHOWING 1-10 OF 28 REFERENCES
The DynaRIA tool for the comprehension of Ajax web applications by dynamic analysis
- Computer ScienceInnovations in Systems and Software Engineering
- 2013
This paper presents an approach for the comprehension of RIAs implemented in Ajax that is based on a tool for dynamic analysis called DynaRIA, which provides an integrated environment for tracing application executions and analyzing them from several perspectives.
Generating Feature Usage Scenarios in Client-Side Web Applications
- Computer ScienceICWE
- 2013
The method is based on dynamic analysis and systematic exploration of the application's event and value space and shows that an increase in coverage can be achieved, when compared to the initial coverage obtained by loading the page and executing registered events.
Script InSight: Using Models to Explore JavaScript Code from the Browser View
- Computer ScienceICWE
- 2009
A novel JavaScript reverse-engineering approach is proposed that helps to relate the semantically meaningful elements in the browser to the lower-level JavaScript syntax, by leveraging context available during the script execution.
Extracting client-side web application code
- Computer ScienceWWW
- 2012
This paper presents a semi-automatic method for extracting client-side web application code implementing a certain behavior and shows that the method is capable of extracting stand-alone behaviors, while achieving considerable savings in terms of code size and application performance.
An Empirical Study of Client-Side JavaScript Bugs
- Computer Science2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement
- 2013
The majority of JavaScript faults are DOM-related, meaning they are caused by faulty interactions of the JavaScript code with the Document Object Model (DOM), and JavaScript programmers need development tools that can help them reason about the DOM.
FireCrystal: Understanding interactive behaviors in dynamic web pages
- Computer Science2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)
- 2009
FireCrystal is a new Firefox extension that allows developers to indicate interactive behaviors of interest, and shows the specific code (Javascript, CSS, and HTML) that is responsible for those behaviors.
Jalangi: a selective record-replay and dynamic analysis framework for JavaScript
- Computer ScienceESEC/FSE 2013
- 2013
This paper presents a simple yet powerful framework, called Jalangi, for writing heavy-weight dynamic analyses, which incorporates two key techniques: selective record-replay, a technique which enables to record and to faithfully replay a user-selected part of the program, and shadow values and shadow execution, which enables easy implementation of heavy- Weight dynamic analyses.
Mugshot: Deterministic Capture and Replay for JavaScript Applications
- Computer ScienceNSDI
- 2010
Mugshot is a system that captures every event in an executing JavaScript program, allowing developers to deterministically replay past executions of web applications, and is one of the first capture systems that is practical to deploy to every client and run in the common case.
Interactive record/replay for web application debugging
- Computer ScienceUIST
- 2013
Timelapse is a tool for quickly recording, reproducing, and debugging interactive behaviors in web applications, built on Dolos, a novel record/replay infrastructure that ensures deterministic execution by capturing and reusing program inputs both from the user and from external sources such as the network.
Understanding Ajax applications by connecting client and server-side execution traces
- Computer ScienceEmpirical Software Engineering
- 2012
Preliminary evidence shows that the FireDetective tool is an effective aid for Web developers striving to understand Ajax applications.