SymJS']JS: Automatic Symbolic Testing of Java']JavaScript Web Applications

被引:51
|
作者
Li, Guodong [1 ]
Andreasen, Esben [2 ]
Ghosh, Indradeep [1 ]
机构
[1] Fujitsu Labs Amer, Sunnyvale, CA USA
[2] Aarhus Univ, Dept Comp Sci, Aarhus, Denmark
关键词
!text type='Java']Java[!/text]Script; Web; Symbolic Execution; Automatic Software Testing; Event Sequence; Taint Analysis; EXECUTION;
D O I
10.1145/2635868.2635913
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present SymJS, a comprehensive framework for automatic testing of client-side JavaScript Web applications. The tool contains a symbolic execution engine for JavaScript, and an automatic event explorer for Web pages. Without any user intervention, SymJS can automatically discover and explore Web events, symbolically execute the associated JavaScript code, refine the execution based on dynamic feedbacks, and produce test cases with high coverage. The symbolic engine contains a symbolic virtual machine, a string-numeric solver, and a symbolic executable DOM model. SymJS's innovations include a novel symbolic virtual machine for JavaScript Web, symbolic+dynamic feedback directed event space exploration, and dynamic taint analysis for enhancing event sequence construction. We illustrate the effectiveness of SymJS on standard JavaScript benchmarks and various real-life Web applications. On average SymJS achieves over 90% line coverage for the benchmark programs, significantly outperforming existing methods.
引用
收藏
页码:449 / 459
页数:11
相关论文
共 50 条
  • [21] Analysis of Java']JavaScript Web Applications Using SAFE 2.0
    Park, Jihyeok
    Ryou, Yeonhee
    Park, Joonyoung
    Ryu, Sukyoung
    PROCEEDINGS OF THE 2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C 2017), 2017, : 59 - 62
  • [22] Using Speculation to Enhance Java']JavaScript Performance in Web Applications
    Martinsen, Jan Kasper
    Grahn, Hakan
    Isberg, Anders
    IEEE INTERNET COMPUTING, 2013, 17 (02) : 10 - 19
  • [23] Journey to Find Bugs in Java']JavaScript Web Applications in the Wild
    Ryu, Sukyoung
    ACM SIGPLAN NOTICES, 2016, 51 (09) : 2 - 2
  • [24] Analyzing Java']JavaScript Web Applications in the Wild (Mostly) Statically
    Ryu, Sukyoung
    PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2015, 2015, 9458 : XII - XIV
  • [25] CHR.js']js: A CHR Implementation in Java']JavaScript
    Nogatz, Falco
    Fruhwirth, Thom
    Seipel, Dietmar
    RULES AND REASONING (RULEML+RR 2018), 2018, 11092 : 131 - 146
  • [26] Model-based automated testing of Java']JavaScript Web applications via longer test sequences
    Gao, Pengfei
    Xu, Yongjie
    Song, Fu
    Chen, Taolue
    FRONTIERS OF COMPUTER SCIENCE, 2022, 16 (03)
  • [27] Java']JavaScript SBST Heuristics to Enable Effective Fuzzing of NodeJS']JS Web APIs
    Zhang, Man
    Belhadi, Asma
    Arcuri, Andrea
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2023, 32 (06)
  • [28] UXJs']Js: Tracking and Analyzing Web Usage Information With a Java']Javascript Oriented Approach
    Solis-Martinez, Jaime
    Pascual Espada, Jordan
    Gonzalez Crespo, Ruben
    Pelayo G-Bustelo, B. Cristina
    Cueva Lovelle, Juan Manuel
    IEEE ACCESS, 2020, 8 : 43725 - 43735
  • [29] JS']JSREHAB: Weaning Common Web Interface Components from Java']JavaScript Addiction
    Fouquet, Romain
    Laperdrix, Pierre
    Rouvoy, Romain
    COMPANION PROCEEDINGS OF THE WEB CONFERENCE 2022, WWW 2022 COMPANION, 2022, : 376 - 382
  • [30] Web applets: Java']Java Java']JavaScript and ActiveX
    Stein, L
    TRENDS IN GENETICS, 1996, 12 (11) : 484 - 485