理解并改进易出错的测试分类问题

《Proceedings of the ACM on Programming Languages》:Understanding and Improving Flaky Test Classification

【字体: 时间:2025年11月07日 来源:Proceedings of the ACM on Programming Languages

编辑推荐:

  易测测试分类存在实验设计缺陷和数据集不现实问题,导致现有模型高估准确率。本文提出FlakeBench数据集和FlakyLens模型,在修正实验后F1分数提升至65.79%,优于CodeLlama和DeepSeekCoder。通过代码token归因分析发现模型依赖特定代码token而非语义理解,对抗扰动测试显示关键token可使准确率波动达-18.37pp,揭示模型泛化能力不足。

  

摘要

回归测试是软件开发中不可或缺的一部分,但它存在“易变测试”(flaky tests)的问题——这类测试在相同代码上运行时结果不稳定,有时通过有时失败。这种不可预测的失败浪费了开发者的时间,且常常掩盖了真正的错误。先前的研究表明,经过微调的大型语言模型(LLMs)能够以非常高的准确率将易变测试分类到不同的类别中。然而,我们发现由于实验设计不当和数据集不真实,之前的方法高估了模型的准确率,从而使得易变测试分类问题看起来比实际更简单。
在本文中,我们首先指出之前的易变测试分类器之所以高估预测准确率,原因在于:1)实验设计存在缺陷;2)它们所使用的数据集中易变测试(以及非易变测试)的真实分布被错误地表示了。在修正了实验设计并构建了一个更真实的数据集(我们将其命名为FlakeBench)后,之前最先进的模型的F1分数从81.82%骤降至56.62%。受这些观察结果的启发,我们开发了一种新的训练策略来微调易变测试分类器FlakyLens,其分类F1分数提升到了65.79%(比最先进模型高出9.17个百分点)。我们还将FlakyLens与最近的预训练LLMs(如CodeLlama和DeepSeekCoder)在同一分类任务上进行了比较。结果表明,FlakyLens始终优于这些模型,这表明通用LLMs在这一特定任务上仍存在不足。
利用我们改进的易变测试分类器,我们识别出了测试代码中对模型预测正确与否有影响的关键词汇。通过分析每个测试中每个代码词汇的属性分数,我们研究了在不同易变测试类别下对分类器决策影响较大的词汇。为了评估这些关键词汇的影响,我们在测试中引入了针对这些词汇的对抗性扰动,并观察模型的预测是否发生变化。研究发现,当引入最重要的词汇进行扰动时,分类准确率最多可下降18.37个百分点。这些结果表明,这些模型仍然难以泛化到训练数据之外的情况,并且依赖于识别特定类别的词汇(而不是理解它们的语义上下文),这需要进一步研究更健壮的训练方法。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普
  • 急聘职位
  • 高薪职位

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号