← 最新论文
💻 computer science

Efficient Black-Box Fault Localization for System-Level Test Code Using Large Language Models

该论文提出了一种完全静态的基于大语言模型的系统级测试代码故障定位方法,该方法无需访问被测系统源代码或重复执行测试,仅通过分析单次失败日志和错误信息即可精准定位故障,在保持高准确率的同时显著降低了推理时间和 Token 消耗。

原作者: Ahmadreza Saboor Yaraghi, Golnaz Gharachorlu, Sakina Fatima, Lionel C. Briand, Ruiyuan Wan, Ruifeng Gao

发布于 2026-04-15
📖 1 分钟阅读☕ 轻松阅读

原作者: Ahmadreza Saboor Yaraghi, Golnaz Gharachorlu, Sakina Fatima, Lionel C. Briand, Ruiyuan Wan, Ruifeng Gao

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

这篇论文讲述了一个关于如何快速找到“测试代码”中错误的聪明新方法。为了让你更容易理解,我们可以把整个软件开发过程想象成拍摄一部大片

🎬 背景故事:谁在捣乱?

在电影拍摄中,有两个关键角色:

  1. 演员(被测系统 SUT):他们在镜头前表演,负责呈现故事。
  2. 场记和导演(测试代码):他们负责检查演员有没有演错,比如“这一句台词是不是背错了?”或者“这个动作是不是太慢了?”。

问题出在哪?
当电影拍摄失败(测试报错)时,通常大家会第一时间怀疑演员(系统代码)演砸了。于是,导演和制片人会花大量时间去检查演员的剧本、排练动作,甚至重新拍摄整个场景。

但有时候,演员其实演得完美无缺,真正的问题出在场记的指令上!

  • 比如:场记错误地喊了“开始”,或者拿错了道具清单(测试脚本写错了)。
  • 结果:大家围着演员找茬,浪费了大量时间和金钱,却找不到真正的罪魁祸首。

在工业界,这种“场记指令错误”(测试代码故障)非常普遍,而且因为系统太复杂,很难反复重拍(执行测试)来验证。

🕵️‍♂️ 传统方法的困境

以前的方法(就像传统的侦探)想要找出错误,通常需要:

  1. 反复重拍:让演员演很多次,对比哪次对了、哪次错了,才能锁定问题。
  2. 代价高昂:对于大型系统,每次“重拍”(运行测试)可能需要几小时,甚至因为环境不稳定(非确定性故障)根本没法重拍。
  3. 大海捞针:测试脚本通常很长,包含成千上万行代码,人工或旧工具很难在这么长的剧本里一眼看出哪句指令错了。

💡 新方案:AI 侦探的“读心术”

这篇论文提出了一种完全静态、不需要重拍的新方法,利用大语言模型(LLM) 来当侦探。

我们可以把这个过程想象成一位经验丰富的老侦探(LLM)在案发现场(错误日志)进行推理

1. 只有一份“现场笔录”(单次失败日志)

侦探不需要重演案件,他手里只有一份错误发生时的现场笔录(Execution Log)。这份笔录记录了:

  • 哪里出错了(报错信息)。
  • 当时发生了什么(日志里的打印信息)。

2. 智能“剪枝”:把无关的剧本撕掉(执行轨迹估计)

这是最核心的创新。侦探拿到一份几百页的测试剧本,但他知道,只有被念出来的台词才可能是错的

  • 传统做法:把整本剧本都扔给 AI 看,AI 看得头昏脑涨,还容易超时。
  • 新做法:侦探利用三个聪明的算法,根据“现场笔录”里的线索,自动撕掉那些根本没被念到的剧本页
    • 比喻:就像侦探看着笔录说:“哦,这里提到了‘打开窗户’,那‘打开冰箱’的指令肯定没执行,直接撕掉!”
    • 结果:原本几百页的剧本,被精简成了几十页的“核心嫌疑片段”。

3. AI 侦探的“排雷”(大模型推理)

现在,侦探手里只拿着那几十页最可能出错的片段,加上报错信息,问 AI:

“根据这些线索,你觉得哪几行指令是错的?请给我排个序。”

因为输入的内容变少了(剪枝),AI 思考得更快,更专注,而且不容易因为内容太多而“幻觉”(胡编乱造)。

🚀 这个方法有多牛?

论文在真实的工业界数据(华为等公司的测试代码)上做了测试,效果惊人:

  1. :AI 估计出的“被念过的剧本片段”和真实情况非常吻合(准确率约 90%)。
    • 因为把无关代码撕掉了,AI 处理速度提升了 34%
    • 相比最新的同类技术,它节省了 85% 的推理时间。
    • 消耗的“算力 Token"减少了 93%(省钱!)。
  2. 准度不降:虽然删掉了大部分代码,但找到错误的能力一点没变,甚至因为更专注而变得更好。
  3. 黑盒友好:侦探不需要知道演员(系统)的内部构造,只看测试脚本和日志就能破案。

🌟 总结:给开发者的启示

这就好比你在家里找东西:

  • 旧方法:把整个房子(包括没去过的房间)翻个底朝天,累得半死。
  • 新方法:先看看你最后出现在哪(日志),然后只搜索那个房间和它必经的走廊(剪枝后的代码),让 AI 帮你快速指出东西最可能在哪。

核心价值
这项技术让软件工程师在面对复杂的系统测试失败时,不再需要盲目地反复运行测试,也不再需要在大海捞针。它能迅速把“测试脚本自己写错了”和“系统本身有 Bug"区分开来,极大地节省了调试时间和金钱。

简单来说,就是用 AI 的“读心术”和“剪枝术”,在没重拍的情况下,精准揪出那个写错指令的“场记”

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

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

试用 Digest →