← 最新论文
💻 computer science

AnoMLP-TCP: An Anomaly Aware Multilayer Perceptron for Test Case Prioritization in Continuous Integration

本文介绍了 AnoMLP-TCP,这是一种用于持续集成中测试用例优先级的轻量级异常感知多层感知器,它在实现与更复杂的基准模型 AnoLSTM-TCP 相当的性能的同时,显著降低了模型参数、训练时间和计算成本。

原作者: MUSA ISYAKU

发布于 2026-10-07
📖 1 分钟阅读☕ 轻松阅读

原作者: MUSA ISYAKU

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

在现代软件开发领域,团队不断地构建和更新程序,通常每天都要进行多次。为了确保这些频繁的变更不会破坏系统,工程师们会运行大规模的自动化检查,即回归测试。这些测试充当了安全网,在每添加一段新代码后,验证软件是否仍能按预期工作。然而,随着软件变得更加复杂,这些测试套件也变得异常庞大。在每次微小的改动后都运行所有测试会耗费过长时间,从而形成一个阻碍整个开发进程的瓶颈。开发者们不得不等待数小时才能获得反馈,而当问题被发现时,其原因往往已经变得难以追踪。为了解决这个问题,研究人员使用了一种称为“测试用例优先级排序”的策略。这种方法不再按照随机顺序或原始创建日期来排列测试,而是重新排列列表,使最有可能失败的测试优先运行。其目标很简单:尽可能快地发现漏洞,以便团队能在当天结束前将其修复。

多年来,解决这一排序问题最先进的方法一直依赖于复杂的人工智能模型,这些模型模仿人类大脑处理随时间变化的信息序列的方式。这些被称为循环神经网络的模型功能强大,但非常沉重,需要大量的计算能力和训练时间。来自尼日利亚阿布卡尔·塔法瓦·巴莱瓦大学的一位研究人员提出了一个直截了当的问题:所有这些复杂性真的是必要的吗?他们想知道,一种更简单、更直接的人工智能类型是否能在不产生沉重计算成本的情况下实现同样的结果。为了验证这一点,他们开发了一种名为 AnoMLP-TCP 的新方法,该方法用一个流线型的、一次性观察所有数据的前馈网络取代了那个复杂的、具有“时间旅行”特性的模型。

研究人员使用来自挪威 ABB 机器人公司三个不同工业项目的真实数据测试了他们的想法。这些项目涉及在数百个周期内运行的数千个自动化测试,提供了关于哪些测试通过、哪些失败以及它们耗时多久的丰富历史记录。团队将这些历史数据连同一种标记测试历史中异常模式的特殊信号一起输入到新模型中。该信号源自一种称为“异常检测”的技术,有助于系统识别测试何时表现异常,而这通常是故障发生的前兆。随后,模型学习为每个测试分配一个优先级分数,以预测哪些测试在下次运行时最有可能导致软件崩溃。

当研究人员将他们这种轻量级的新模型与旨在取代的沉重且复杂的标准模型进行比较时,结果令人惊讶。这个更简单的模型表现得与复杂的模型一样出色。在发现故障的速度方面,两个模型是完全一致的。在一个数据集中,两者的成功率都接近 96%;在另一个数据集中,两者都达到了约 89%。研究人员发现,复杂的模型在有效排序测试方面并没有优势。唯一的区别在于运行成本。新的、更简单的模型所需的内部设置(即参数)减少了大约 76%。由于体积小得多,它的训练速度也显著加快,在每个周期学习数据所需的时间不到其复杂对手的一半。

该研究还探讨了在由于时间限制而无法运行所有测试时的情况,这在节奏极快的开发场景中是很常见的。即使研究人员模拟仅运行 50%、70% 或 90% 的测试,新模型依然能够完美匹配复杂模型的性能。它能识别出同样关键的测试并优先运行,无论有多少可用时间,都能确保捕捉到最重要的故障。研究人员指出,这种等效性并非偶然,而是在他们检查的所有三个工业数据集中一致的结果。他们还发现,他们试图改进的那个复杂模型在设计上存在一个技术缺陷,限制了它区分不同测试分数的能力,而他们更简单的模型通过使用不同的数学结构完全避免了这个问题。

这项工作表明,对于持续集成中优先排序软件测试这一特定任务,业界可能并不需要现有的最先进、最沉重的人工智能模型。研究人员证明,一种更简单、更高效的架构可以同样有效地完成工作。通过减轻计算负担,这种方法允许团队更频繁、更节能地更新其优先级排序模型,使软件测试过程变得更加敏捷。研究结果表明,在软件工程的这个特定领域,通往更高效率的路径并不总是需要构建更大、更复杂的机器,有时只需找到一种更清晰、更直接观察数据的方式。

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

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

试用 Digest →