← 最新论文
💻 computer science

AnoMLP-TCP: A Lightweight Feedforward Neural Network Approach for Anomaly-Aware Test Case Prioritization in Continuous Integration

本文介绍了 AnoMLP-TCP,这是一种轻量级的异常感知多层感知器,它在实现与更复杂的 AnoLSTM-TCP 模型相当的测试用例优先级排序有效性的同时,显著减少了参数数量和训练时间。

原作者: MUSA ISYAKU, Abdulsalam Ya'u Gital, Haruna Chiroma

发布于 2026-09-29
📖 1 分钟阅读☕ 轻松阅读

原作者: MUSA ISYAKU, Abdulsalam Ya'u Gital, Haruna Chiroma

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在现代软件开发的领域中,程序很少是构建一次后就置之不理的。相反,它们在被称为“持续集成”的快速循环中不断演进,通过添加新功能和微调旧功能来实现进化。每当做出更改时,整个系统都必须经过测试,以确保没有出现故障。这种被称为“回归测试”的过程对于保证质量至关重要,但它已成为一个瓶颈。随着软件规模的增长,用于检查它的测试列表变得极其庞大。在每一次微小的改动后都运行所有的测试需要耗费过长时间,从而延迟了反馈给工程师所需的信息。为了解决这个问题,研究人员使用了一种称为“测试用例优先级排序”的策略。这种方法并不是移除测试,而是重新排列它们,将最有可能发现问题的测试放在队列的最前端。其目标很简单:尽可能早地发现故障,以便在一天结束前将其修复。

多年来,进行这种优先级排序的最先进方法一直依赖于复杂的深度学习模型,这些模型模仿人类大脑处理随时间变化的信息序列的方式。这些被称为“循环神经网络”的模型功能强大,但非常沉重,需要大量的计算能力和训练时间。来自尼日利亚阿布巴卡尔·塔法瓦·巴莱瓦大学的一个研究小组提出了一个根本性的问题:所有的这些复杂性真的是必要的吗?他们想知道,一种更简单的、通过单次扫描数据而非记忆长期历史的人工智能,是否也能取得同样的结果。为了验证这一点,他们开发了一个名为 AnoMLP-TCP 的新型轻量级系统,并使用来自挪威 ABB 机器人公司的真实世界数据,将其与更复杂、更成熟的模型进行了对比测试。

研究人员使用了来自工业机器人的三组截然不同的数据集,其中包含数千次测试运行和数百万条记录的结果。这些数据集包含了诸如测试运行时间、上次执行时间、过去通过或失败的次数以及状态近期是否发生变化等信息。他们还向系统输入了一个特殊的评分,用于标记异常行为,帮助模型识别可能指示隐藏问题的异常情况。团队在这些历史数据上训练了他们的新型简化系统,然后要求它预测在未来场景下哪些测试应该优先运行。他们直接将该系统的表现与之前被视为最先进解决方案的、具有时间感知能力的复杂模型进行了对比。

结果令人震惊。这个新型轻量级系统的表现与那个沉重且复杂的模型一样出色。在衡量发现故障速度的主要指标方面,两个模型在所有三个工业数据集上都取得了相同的得分。在一个数据集中,两个模型都达到了 0.959;在另一个数据集中,两者都达到了 0.893;在第三个数据集中,两者都得到了 0.821。这意味着,尽管采用了更简单的架构,新系统能够以与复杂模型完全相同的有效顺序对测试进行排序。研究人员发现,复杂的模型在缩短发现故障的时间方面并没有优势,也并未在只能运行部分测试的情况下提高排序的准确性。

这一发现的真正价值在于效率。与新系统相比,复杂模型所需的内部设置(即参数)多出五倍以上。具体而言,复杂模型拥有 54,577 个参数,而新系统仅需 13,057 个。这种规模的大幅缩减直接转化为了速度。新系统的训练速度显著加快,在某些数据集上的每个训练周期耗时不到一半。例如,在一个数据集中,新系统处理一个训练步骤仅需 0.717 秒,而复杂模型则需要 1.426 秒。在软件不断更新且模型需要频繁重新训练的环境中,这种速度差异是巨大的。这意味着,公司可以在无需等待缓慢、耗费资源的计算机完成工作的情况下,更频繁地更新其测试策略。

该研究还解决了一个经常困扰此类实验的具体技术障碍。研究人员发现,如果按照以往文献中描述的方式精确实现原始的复杂模型,它会存在一个缺陷,即只能产生极少数不同的优先级评分,从而降低了实用性。通过调整模型的最终层以允许连续的数值范围,他们确保了公平的比较。即便进行了这种修正,复杂模型也并未超越简单的模型。研究人员指出,在这些特定的工业数据集中,用于预测故障的特征非常清晰,以至于即使是简单的模型也能完美准确地将失败的测试与通过的测试区分开来。这表明,对于这类问题,记忆长序列历史的额外复杂性是不必要的。

最终,这项工作证明了在持续集成的测试优先级排序这一特定背景下,一种更简单的方法可以与复杂的方法一样有效。新型系统 AnoMLP-TCP 证明了你不需要庞大的深度学习架构来解决这个问题。相反,一个专注于关键历史指标和异常检测的精简模型,可以在使用极少计算资源的同时,提供同样高质量的结果。这项研究表明,虽然复杂的模型并非“错误”,但对于这项特定任务来说,它们很可能过度设计了,而对于追求速度和简洁性的用户来说,存在着一种更轻量级的替代方案。研究结论认为,虽然复杂模型并非不可用,但在处理此类任务时,它们往往显得过于繁琐,而更轻量化的选择同样能胜任。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →