2014 · 会议论文

理解 JavaScript 基于事件的交互

Understanding JavaScript Event-Based Interactions

Clematis 根据录制的用户会话,帮助开发者理解 JavaScript 网页应用的运行时行为。代理在传输过程中对 JavaScript 进行插桩,记录 DOM 事件、定时器、XMLHttpRequest 各阶段、函数调用及 DOM 变更。轨迹被划分为若干情节,每个情节包含触发事件、执行的函数及由此产生的 DOM 变化,情节之间以时间与因果边连接,并以交互式可视化呈现。在 Phormer 相册应用上开展、有 20 名开发者参加的工业研究中,作者报告其任务准确率比使用各自惯用工具的开发者高 61%,完成时间少 47%。

研究范围与局限

这是面向单次录制会话中所触发客户端行为的动态程序理解工具;它不重建服务端逻辑,不生成替代应用,也不确立行为等价性。通过 eval 执行的代码不会被捕获。评估包括两项小规模、针对理解任务的对照实验:16 名 UBC 参与者在实验室自建的问卷应用上与 Firebug 对比,以及 20 名专业开发者在 Phormer 上开展的实验。准确率由作者依据事先编写的答案要点评分。运行开销仅针对一分钟的 Phormer 操作进行测量。2014 年的原型通过 Selenium 与 WebScarab 代理驱动 Firefox;未证明其可在当前浏览器上运行,用于比较的工具也已是历史版本。

与本合集的关联

补充从执行轨迹恢复网页应用事件、定时器、请求与 DOM 因果关系的研究,与本合集中基于截图、设计稿和视频的网站重建研究互补。

发表与复核详情

发表载体
ICSE 2014
发表状态
会议论文
出版/提交日期
2014 年 5 月 31 日
日期依据
ACM 提交的 Crossref 元数据将在线及印刷出版日期均列为 2014 年 5 月 31 日,这也是 ICSE 2014 的首日;该日期取自出版方元数据,而非会议日程。
DOI
10.1145/2568225.2568268

Crossref 确认四位作者顺序、ICSE ’14 会议论文集及第 367–377 页;其标题采用句首大写形式,本条目保留论文所印的大小写。作者托管的 PDF 共 11 页,含 ICSE ’14 版权许可声明。扩展版 ACM TOSEM 2016 文章《Understanding JavaScript Event-Based Interactions with Clematis》(DOI 10.1145/2876441)是独立作品,未并入本条目。论文引用的实验室页面 salt.ece.ubc.ca/software/clematis/ 已无法访问;其 2014-07-08 的 Internet Archive 存档链接至 github.com/saltlab/clematis 及技术报告 UBC-SALT-2014-001。所审阅仓库采用 GPL-3.0 许可,master 分支位于 2015-06-19 提交的 7b2479a0,此后再无推送。README 说明该工具需在 Eclipse(含 m2e 插件)中运行,并需要 Maven、Jetty 服务器和 Mozilla Firefox;Chrome 支持仅在计划中。工具曾用 Phormer 和一个可下载的问卷应用测试。pom.xml 面向 Java 1.6,使用 Crawljax 2.2 与 Rhino 1.7R4,并对 Selenium(自 2.31.0 起)和 WebScarab 使用无上限版本范围,因此现在构建可能解析到不同依赖。本次仅阅读源码文件,未构建或运行工具,也未复现实验。

来源复核于

本合集仅做来源复核,未重新运行论文实验。请通过原始论文或 BibTeX 引用原作者。

报告条目过时 建议修正翻译

一手来源

  1. https://doi.org/10.1145/2568225.2568268
  2. https://api.crossref.org/works/10.1145/2568225.2568268
  3. https://people.ece.ubc.ca/amesbah/resources/papers/clematis-icse14.pdf
  4. https://api.crossref.org/works/10.1145/2876441
  5. https://web.archive.org/web/20140708215205/http://salt.ece.ubc.ca/software/clematis/
  6. README.md GitHub · saltlab/clematis · 修订 7b2479a
  7. LICENSE.md GitHub · saltlab/clematis · 修订 7b2479a
  8. pom.xml GitHub · saltlab/clematis · 修订 7b2479a