中文

驯服超时波动:一项针对 SAP HANA 的实证研究

软件工程 2024-10-01 v3

摘要

回归测试旨在防止代码变更破坏现有功能。波动性测试会对回归测试产生负面影响,因为它们导致的测试失败不一定由代码变更引起,从而提供了模糊的信号。测试超时是造成此类波动性测试失败的因素之一。为了减少 SAP HANA 中的测试波动性,我们实证研究了测试超时对系统测试中波动性的影响。我们评估了自动调整超时值的不同方法,评估它们在减少执行时间成本和改善构建周转时间方面的适用性。我们通过在六个月内对同一代码版本重复执行测试,收集了 SAP HANA 测试执行的元数据。我们分析了测试波动率,调查了测试超时值的演变,并评估了优化超时值的不同方法。测试波动率在 49% 到 70% 之间,具体取决于重复测试执行的次数。测试超时导致了 70% 的波动性测试失败。开发人员通常通过手动增加超时值或拆分长时间运行的测试来应对波动性超时。然而,手动调整超时值是一项繁琐的任务。我们的超时优化方法将超时相关的波动性失败减少了 80%,并将整体中位超时值降低了 25%,即能更快地识别出阻塞的测试。测试超时是导致系统测试波动性的一个主要因素。开发人员难以有效地手动缓解此问题。我们优化超时值的技术减少了波动性失败,同时最小化了测试成本。从事大规模工业软件系统的从业者可以利用我们的发现来提高其系统测试的有效性,同时减轻开发人员手动维护适当超时值的负担。

关键词

引用

@article{arxiv.2402.05223,
  title  = {Taming Timeout Flakiness: An Empirical Study of SAP HANA},
  author = {Alexander Berndt and Sebastian Baltes and Thomas Bach},
  journal= {arXiv preprint arXiv:2402.05223},
  year   = {2024}
}

备注

12 pages, 9 figures, 3 tables, Proceedings of the 46th International Conference on Software Engineering: Software Engineering in Practice (ICSE SEIP 2024)