中文

JavaScript 中不稳定测试的实证研究

软件工程 2022-07-05 v1

摘要

不稳定测试(结果非确定性的测试)会对测试效率与软件可靠性造成问题。测试套件中的不稳定测试还会显著延迟软件发布。已有若干研究试图量化不同编程语言(例如 Java 和 Python)与应用领域(例如移动与基于 GUI 的)中测试不稳定性的影响。本文中,我们对 JavaScript 中不稳定测试的现状进行实证研究。我们调查 JavaScript 项目中不稳定测试的两个方面:这些项目中不稳定测试的主要原因与常见修复策略。通过分析来自 GitHub 上大型、高评分 JavaScript 项目的 452 个提交,我们发现由并发相关问题(例如异步等待、竞态条件或死锁)引起的不稳定性是不稳定测试最主要的原因。不稳定测试的其他主要原因包括操作系统相关(例如仅在特定 OS 或 OS 版本上可用的特性)与网络稳定性(例如互联网可用性或糟糕的套接字管理)。就如何处理不稳定测试而言,绝大多数此类测试(>80%)被修复以消除不稳定行为,开发者有时会跳过、隔离或移除不稳定测试。

关键词

引用

@article{arxiv.2207.01047,
  title  = {An Empirical Study of Flaky Tests in JavaScript},
  author = {Negar Hashemi and Amjed Tahir and Shawn Rasheed},
  journal= {arXiv preprint arXiv:2207.01047},
  year   = {2022}
}