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… 
Understanding JavaScript Event-Based Interactions with Clematis
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 28 REFERENCES
The DynaRIA tool for the comprehension of Ajax web applications by dynamic analysis
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
  • S. Oney, B. Myers
  • Computer Science
    2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)
  • 2009
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
Preliminary evidence shows that the FireDetective tool is an effective aid for Web developers striving to understand Ajax applications.
...
1
2
3
...