基于变异的 JavaScript 环境深度学习框架测试方法
软件工程
2024-09-24 v1
摘要
近年来,深度学习 (DL) 在 JavaScript 环境中的应用日益流行。作为 DL 应用的基础设施,JavaScript DL 框架在开发和部署中发挥着关键作用。确保 JavaScript DL 框架质量至关重要。然而,JavaScript 环境中计算资源有限的瓶颈带来了新的测试挑战。具体而言,JavaScript DL 框架配备了各种优化机制(如缓存复用、推理加速)以克服计算资源有限的瓶颈,但这些优化机制被现有方法所忽视,导致许多 JavaScript DL 框架中的 bug 被漏检。为解决上述挑战,我们提出一种基于变异的 JavaScript DL 框架测试方法,命名为 DLJSFuzzer。DLJSFuzzer 设计了 13 条张量变异规则,针对缓存复用机制生成测试输入张量;此外,DLJSFuzzer 设计了 8 条模型变异规则,针对推理加速机制生成测试输入模型。为评估 DLJSFuzzer 的有效性,我们在最广泛使用的 JavaScript DL 框架 TensorFlow.js 上进行实验。实验结果表明,DLJSFuzzer 在有效性和效率方面均优于最先进的方法。DLJSFuzzer 成功检测到 21 个唯一崩溃和 126 个唯一的 NaN 与 不一致错误。所有检测到的崩溃均已报告给开源社区,其中 12 个已被开发人员确认。此外,DLJSFuzzer 在模型生成效率和 bug 检测效率方面分别比所有基线提高了 47% 和 91%。
引用
@article{arxiv.2409.14968,
title = {Mutation-Based Deep Learning Framework Testing Method in JavaScript Environment},
author = {Yinglong Zou and Juan Zhai and Chunrong Fang and Jiawei Liu and Tao Zheng and Zhenyu Chen},
journal= {arXiv preprint arXiv:2409.14968},
year = {2024}
}