中文

面向更真实评估的神经测试预言生成

软件工程 2023-05-29 v1

摘要

有效的单元测试有助于保障和提升软件质量,但需要投入大量时间和精力来编写与维护。一个单元测试由测试前缀和测试预言组成。合成测试预言,尤其是功能性预言,是一个众所周知的难题。近期研究提出利用神经模型生成测试预言,即神经测试预言生成(NTOG),并取得了有前景的结果。然而,经过系统性检视,我们发现现有 NTOG 评估方法存在一些不恰当的设定。这些设定可能误导对现有 NTOG 方法性能的理解。我们将其归纳为:1)从修复缺陷后的程序版本生成测试前缀,2)使用不现实的度量指标进行评估,3)缺乏直观的基线。本文中,我们首先研究了这些设定对评估和认识 NTOG 方法性能的影响。我们发现:1)不现实地从修复缺陷后的程序版本生成测试前缀,使最先进的 NTOG 方法 TOGA 发现的缺陷数量膨胀了61.8%;2)FPR(假阳性率)并非现实的评估指标,且 TOGA 的精确率仅为0.38%;3)一个直观的基线 NoException(简单地期望不抛出异常)能以两倍的精确率发现 TOGA 所发现缺陷的61%。此外,我们在现有评估方法中引入一个额外的排序步骤,并提出名为 Found@K 的评估指标,以更好地衡量 NTOG 方法的性价比。我们提出一种新颖的无监督排序方法来实例化该排序步骤,显著提升了 TOGA 的性价比。最终,我们提出一种更现实的 NTOG 评估方法 TEval+,并总结出七条经验法则以推动 NTOG 方法的实际应用。

关键词

引用

@article{arxiv.2305.17047,
  title  = {Towards More Realistic Evaluation for Neural Test Oracle Generation},
  author = {Zhongxin Liu and Kui Liu and Xin Xia and Xiaohu Yang},
  journal= {arXiv preprint arXiv:2305.17047},
  year   = {2023}
}

备注

Accepted by ISSTA 2023