中文

Tratto:一种从源代码和文档生成 axioms 测试 oracle 的神经符号方法

软件工程 2025-04-23 v2

摘要

本文提出了 Tratto,一种神经符号方法,用于从源代码和文档生成可作为 axioms 测试 oracle 的断言(布尔表达式)。Tratto 的符号模块利用编程语言的语法、被测试单元及其上下文(其类和可用的 API)来限制可成功用于生成有效 oracle 的标记集合。Tratto 的神经模块使用针对决定是否输出 oracle 以及选择下一个词法标记以增量构建 oracle 的 transformer 进行微调。我们的实验表明,Tratto 在生成 axioms 测试 oracle 方面优于当前最先进的方法,准确率为73%,精确率为72%,F1 分数为61%,显著高于本研究中考虑的符号和神经方法的最佳结果(分别为61%、62%和37%)。Tratto 可以生成当前符号方法的三倍的 axioms oracle,同时比 GPT4 结合少量样本学习和链式思考提示生成的虚假阳性率低出一个数量级。

关键词

引用

@article{arxiv.2504.04251,
  title  = {Tratto: A Neuro-Symbolic Approach to Deriving Axiomatic Test Oracles},
  author = {Davide Molinelli and Alberto Martin-Lopez and Elliott Zackrone and Beyza Eken and Michael D. Ernst and Mauro Pezzè},
  journal= {arXiv preprint arXiv:2504.04251},
  year   = {2025}
}

备注

Accepted for publication at ISSTA 2025