论文
故障感知和可解释的测试预言机预测
Fail-Aware and Explainable Test Oracle Prediction
摘要
尽管测试预言机在故障检测中发挥着核心作用,但有效构建测试预言机仍然具有挑战性。最近基于学习的方法通过自动生成测试断言来解决这一挑战,但即使语法正确,它们通常也无法有效地揭示错误。这项研究不是生成断言,而是通过训练模型来直接预测给定的测试前缀是否通过或失败,探索了一种不同的方法。我们提出了 FOCAL,一种新兴的基于代码 LLM 的判别预言预测器。它从标记的测试前缀对和测试中的方法中学习,采用强调训练期间失败案例的损失,并将其预测基于语句级行为证据。与基线方法 SEER 相比,我们大幅提高了未见过项目的失败案例的性能,并提供了更丰富的解释。对故障检测基准和自动测试生成工件的初步评估表明,我们的方法在其训练分布中非常准确,并且大大改进了对以前未见过的项目的故障检测,在这些项目中,先前的判别性预言崩溃了。此外,突出显示的陈述得到了行为解释检查的支持。这些早期结果表明,故障感知判别预言机预测可以补充现有方法,例如模糊测试、基于搜索的测试和基于 LLM 的测试生成。这些技术可大规模生成测试前缀,但通常缺乏面向故障的预言机。在未来的工作中,FOCAL 可以采用生成的测试前缀,并将故障感知预测预言附加到它们上,将大量输入生成转化为更有可能暴露语义故障的可执行测试。