中文

WebAssembly 应用中的问题及其成因:一项实证研究

软件工程 2024-04-10 v2

摘要

WebAssembly(Wasm)是一种二进制指令格式,设计用于沙箱环境(主要是 Web 应用与浏览器)中的安全高效执行,以提升 Web 编程语言的性能、安全性与灵活性。近年来,Wasm 受到了学术研究界与工业开发项目的显著关注,用于构建高性能 Web 应用。尽管具有上述益处,开发者仍会遇到根植于 Wasm 的多种问题(例如故障、错误、失效),且往往不清楚影响 Web 应用开发的这些问题的根本原因。为此,我们开展了一项实证研究,挖掘并记录了从业者知识:来自部署于 GitHub 的 12 个开源 Wasm 项目的 385 个问题,以及通过 Stack Overflow 的 354 个问答帖子。总体而言,我们识别出 120 类问题,并将其归类为 19 个子类别与 9 个类别,以建立基于 Wasm 应用中遇到问题分类学。此外,对问题的根因分析帮助我们识别出 278 类成因,并归类为 29 个子类别与 10 个类别,作为成因分类学。我们的研究首次给出了开发者在基于 Wasm 应用中面临的问题及其潜在成因的分类学。从 GitHub 与 SO 识别出的 issue-cause 分类学提供了经验导出的指导方针,可指导研究者和从业者设计、开发与重构基于 Wasm 的应用。

关键词

引用

@article{arxiv.2311.00646,
  title  = {Issues and Their Causes in WebAssembly Applications: An Empirical Study},
  author = {Muhammad Waseem and Teerath Das and Aakash Ahmad and Peng Liang and Tommi Mikkonen},
  journal= {arXiv preprint arXiv:2311.00646},
  year   = {2024}
}

备注

The 28th International Conference on Evaluation and Assessment in Software Engineering (EASE)