Context-Based Event Trace Reduction in Client-Side Java']JavaScript Applications

被引:3
|
作者
Wang, Jie
Dou, Wensheng [1 ]
Gao, Chushu
Gao, Yu
Wei, Jun
机构
[1] Univ Chinese Acad Sci, Beijing, Peoples R China
基金
中国国家自然科学基金;
关键词
!text type='Java']Java[!/text]Script; event trace reduction; delta debugging;
D O I
10.1109/ICST.2018.00022
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Record-replay techniques are developed to facilitate debugging client-side JavaScript application failures. They faithfully record all events that reveal a failure, but record many events irrelevant to the failure. Delta debugging adopts the divide-and-conquer algorithm to generate a minimal event subtrace that still reveals the same failure. However, delta debugging is slow because it may generate lots of syntactically infeasible candidate event subtraces in which some events can trigger syntactical errors (e.g., ReferenceError and TypeError), and thus cannot be replayed as expected. Based on this observation, we propose EvMin, an effective and efficient approach to remove failure-irrelevant events from an event trace. We use the variable usage information (e.g., DOM variable usage) in an event to model the event's context. We require that, each event in an event subtrace has the compatible context with its corresponding one in the original event trace. In this way, we avoid generating syntactically infeasible event subtraces, and dramatically speed up delta debugging. We have implemented EvMin and evaluated it on 10 real-world JavaScript application failures. Our evaluation shows that EvMin generates 72% fewer event subtraces, and takes 84% less time than delta debugging.
引用
收藏
页码:127 / 138
页数:12
相关论文
共 50 条
  • [1] The effectiveness of client-side Java']JavaScript Testing
    Moon, Jonny
    Farnsworth, Brian
    Smith, Riley
    [J]. 2020 IEEE/ACM 15TH INTERNATIONAL CONFERENCE ON AUTOMATION OF SOFTWARE TEST, AST, 2020, : 101 - 102
  • [2] Detecting Concurrency Errors in Client-side Java']JavaScript Web Applications
    Hong, Shin
    Park, Yongbae
    Kim, Moonzoo
    [J]. 2014 IEEE SEVENTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST), 2014, : 61 - 70
  • [3] REST to Java']JavaScript for Better Client-side Development
    Cho, Hyunghun
    Ryu, Sukyoung
    [J]. WWW'14 COMPANION: PROCEEDINGS OF THE 23RD INTERNATIONAL CONFERENCE ON WORLD WIDE WEB, 2014, : 937 - 942
  • [4] Automatic fault localization for client-side Java']JavaScript
    Ocariza, Frolin S., Jr.
    Li, Guanpeng
    Pattabiraman, Karthik
    Mesbah, Ali
    [J]. SOFTWARE TESTING VERIFICATION & RELIABILITY, 2016, 26 (01): : 69 - 88
  • [5] A Study of Causes and Consequences of Client-Side Java']JavaScript Bugs
    Ocariza, Frolin S., Jr.
    Bajaj, Kartik
    Pattabiraman, Karthik
    Mesbah, Ali
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2017, 43 (02) : 128 - 144
  • [6] DETECTING SERVER-SIDE ENDPOINTS IN WEB APPLICATIONS BASED ON STATIC ANALYSIS OF CLIENT-SIDE Java']JavaScript CODE
    Sigalov, D. A.
    Khashaev, A. A.
    Gamayunov, D. Yu.
    [J]. PRIKLADNAYA DISKRETNAYA MATEMATIKA, 2021, (53): : 32 - 54
  • [7] Efficient and Precise Dynamic Slicing for Client-Side Java']JavaScript Programs
    Ye, Jiabin
    Zhang, Cheng
    Ma, Lei
    Yu, Haibo
    Zhao, Jianjun
    [J]. 2016 IEEE 23RD INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), VOL 1, 2016, : 449 - 459
  • [8] Server-Side Type Profiling for Optimizing Client-Side Java']JavaScript Engines
    Kedlaya, Madhukar N.
    Robatmili, Behnam
    Hardekopf, Ben
    [J]. ACM SIGPLAN NOTICES, 2016, 51 (02) : 140 - 153
  • [9] Finding Server-Side Endpoints with Static Analysis of Client-Side Java']JavaScript
    Sigalov, Daniil
    Gamayunov, Dennis
    [J]. COMPUTER SECURITY. ESORICS 2023 INTERNATIONAL WORKSHOPS, CPS4CIP, PT II, 2024, 14399 : 442 - 458
  • [10] Automated Refactoring of Client-Side Java']JavaScript Code to ES6 Modules
    Paltoglou, Aikaterini
    Zafeiris, Vassilis E.
    Giakoumakis, E. A.
    Diamantidis, N. A.
    [J]. 2018 25TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2018), 2018, : 402 - 412