一句话:揭示神经测试预言生成评估的不合理设定,提出更真实评估方法 TEval+ 与 Found@K 指标。
单元测试的测试预言合成困难,现有研究用神经模型生成测试预言(NTOG),但其评估存在不合理设定。本文系统检查并量化三类问题:从已修复版本生成测试前缀、使用不现实的 FPR 指标、缺乏简单基线。结果显示,前者使先进方法 TOGA 发现的缺陷数虚高 61.8%;TOGA 的 Precision 仅 0.38%;简单 NoException 基线以两倍 Precision 找到 TOGA 所发现缺陷的 61%。作者引入排序步骤和 Found@K 指标,提出无监督排序方法,显著提升 TOGA 的成本效益,并给出更真实的评估方法 TEval+ 及七条实践规则。
Unit testing has become an essential practice during software development and maintenance. Effective unit tests can help guard and improve software quality but require a substantial amount of time and effort to write and maintain. A unit test consists of a test prefix and a test oracle. Synthesizing test oracles, especially functional oracles, is a well-known challenging problem. Recent studies proposed to leverage neural models to generate test oracles, i.e., neural test oracle generation (NTOG), and obtained promising results. However, after a systematic inspection, we find there are some inappropriate settings in existing evaluation methods for NTOG. These settings could mislead the understanding of existing NTOG approaches’ performance. We summarize them as 1) generating test prefixes from bug-fixed program versions, 2) evaluating with an unrealistic metric, and 3) lacking a straightforward baseline. In this paper, we first investigate the impacts of these settings on evaluating and understanding the performance of NTOG approaches. We find that 1) unrealistically generating test prefixes from bug-fixed program versions inflates the number of bugs found by the state-of-the-art NTOG approach TOGA by 61.8%, 2) FPR (False Positive Rate) is not a realistic evaluation metric and the Precision of TOGA is only 0.38%, and 3) a straightforward baseline NoException, which simply expects no exception should be raised, can find 61% of the bugs found by TOGA with twice the Precision. Furthermore, we introduce an additional ranking step to existing evaluation methods and propose an evaluation metric named Found@K to better measure the cost-effectiveness of NTOG approaches in terms of bug-finding. We propose a novel unsupervised ranking method to instantiate this ranking step, significantly improving the cost-effectiveness of TOGA. Eventually, based on our experimental results and observations, we propose a more realistic evaluation method TEval+ for NTOG and summarize seven rules of thumb to boost NTOG approaches into their practical usages.