[Paper] SAP HANA 环境中的 Flaky Tests 词汇

发布: (2026年2月27日 GMT+8 19:59)
7 分钟阅读
原文: arXiv

Source: arXiv - 2602.23957v1

概述

本文研究了如何通过挖掘测试源代码中使用的词汇,自动识别 flaky 自动化测试——即因无代码更改而间歇性失败的测试。通过在庞大的 SAP HANA 代码库中复现先前的工作,并尝试更新的文本挖掘和机器学习技术,作者展示了高精度分类器是可行的,但其产生的洞察对开发者而言难以付诸行动。

关键贡献

  • 工业复现 Pinto 等人的基于标识符的 flaky 测试检测在 SAP HANA 项目上的应用,确认原方法能够在真实的大规模代码库中扩展。
  • 特征提取比较 在经典 TF‑IDF 与更细致的 TF‑IDFC‑RF(词频、逆文档频率、类别相关性和频率削减)之间,对测试代码标识符进行比较。
  • 模型评估 使用基于 Transformer 的语言模型(CodeBERT)和梯度提升树集成(XGBoost),展示相较基线的适度提升。
  • 根本原因的实证分析 揭示外部数据依赖(例如远程服务、数据库)在 SAP HANA 的 flaky 测试相关词汇中占主导。
  • 批判性反思 对词汇基预测的实际效用进行审视,强调高分类分数与可操作的开发者指导之间的差距。

方法论

  1. 数据收集 – 作者收集了三个标记数据集:Pinto 等人使用的原始数据集,以及从 SAP HANA 测试套件中提取的两个新数据集,每个数据集都包含经工程师手动验证的 flaky(不稳定)和 stable(稳定)测试。
  2. 标识符提取 – 从每个测试文件中解析所有源代码标识符(方法名、变量名、类名等),这些标识符可作为文本线索。
  3. 特征工程
    • TF‑IDF:经典的词袋加权。
    • TF‑IDFC‑RF:在 TF‑IDF 基础上,通过降低在 flaky 与 stable 测试中频繁出现的词的权重、提升特定类词的权重来进行扩展。
  4. 模型训练 – 对每个特征集训练了两种分类器:
    • CodeBERT – 预训练的 Transformer,针对标识符序列进行微调。
    • XGBoost – 适用于稀疏高维文本特征的梯度提升决策树模型。
  5. 评估 – 使用标准的 5 折交叉验证测量精确率、召回率和 F1‑score。将原始数据集的结果与 SAP HANA 数据集的结果进行比较,以评估可迁移性。

结果与发现

数据集特征模型F1‑Score
Original (Pinto)TF‑IDFXGBoost0.94
SAP HANA #1TF‑IDFXGBoost0.92
SAP HANA #2TF‑IDFC‑RFCodeBERT0.99
SAP HANA #2TF‑IDFC‑RFXGBoost0.96
  • 复制成功:基线方法复现了原始的 0.94 F1‑Score,确认其在工业环境中的有效性。
  • 特征提升:TF‑IDFC‑RF 始终优于普通 TF‑IDF,尤其在更为异构的 SAP HANA 数据上表现突出。
  • 模型优势:在配合更丰富的 TF‑IDFC‑RF 特征时,CodeBERT 达到最高分(0.99),但 XGBoost 以更低的计算成本仍具竞争力。
  • 根因词汇:与 远程依赖(如 “http”、 “service”、 “db”)相关的术语主导了不稳定测试词库,呼应了早期的实证研究。

实际意义

  • 自动化易失测试分流 – 团队可以将轻量级 XGBoost 分类器集成到 CI 流水线中,提前标记可能的易失测试,降低测试报告中的噪声。
  • 有针对性的重构 – 所识别的词汇表暗示依赖外部服务的测试是导致易失性的最大风险,鼓励开发者对这些依赖进行模拟或隔离。
  • 工具集成 – 由于该方法仅需静态标识符提取,可直接加入现有的静态分析或测试管理工具,无需深度运行时插装。
  • 数据驱动的测试设计 – 组织可以定期在自己的测试语料库上重新训练模型,使词汇表适应项目特定术语,并捕获新出现的易失模式。

限制与未来工作

  • Actionability gap – 虽然分类器实现了高 F1‑scores,但它们仅输出二元的 flaky/not‑flaky 标签;并未解释 为什么 测试会出现 flaky,这限制了对开发者的实用性。
  • Dataset bias – 本研究聚焦于 SAP HANA,一个数据库密集型系统;对于 UI‑heavy 或 embedded‑software 项目,结果可能会有所不同。
  • Static analysis only – 动态因素(如时序、线程调度)导致的 flaky 对基于标识符的模型是不可见的。
  • Future directions suggested include: (1) enriching the model with execution‑trace features, (2) generating natural‑language explanations for flagged tests, and (3) evaluating the approach across diverse domains to assess generalizability.

作者

  • Alexander Berndt
  • Zoltán Nochta
  • Thomas Bach

论文信息

  • arXiv ID: 2602.23957v1
  • 类别: cs.SE
  • 出版日期: 2026年2月27日
  • PDF: 下载 PDF
0 浏览
Back to Blog

相关文章

阅读更多 »