Page 77 - 《软件学报》2026年第2期
P. 77
556 软件学报 2026 年第 37 卷第 2 期
d ·c i
Similarity(d,c i ) = (3)
||d||·||c i ||
● 误报率: 与已有的研究方法相同 [16,17] , 本文采用人工检查的方式来验证测试结果是否是误报. 具体来说, 本
文从生成的测试用例中随机选择 300 个测试结果进行人工检查. 最终根据人工检查的结果计算每种方法产生的误
报率. 误报率等于分析得到的误报个数与分析数量总数的比值. 与之对应的是真阳性率: 真阳性率 = 1−误报率.
5.1.4 实验配置
本文的所有实验均在同一台服务器上执行, 该服务器搭载 Ubuntu 18.04 操作系统, 同时配备 Intel Xeon Gold
6240C CPU, NVIDIA GeForce RTX 3090 GPU 和 128 GB 内存. QALT 的测试输入执行模块需要设定一个阈值来
判断预测答案和预期答案的语义是否一致, 为此我们复用了 QAQA 方法中的默认阈值 (即 0.76). 对于 SBERT 等
工具的其他超参数, 我们使用工具原始论文中推荐的配置.
5.2 实验结果与分析
5.2.1 针对问题 1 的结果分析
研究问题 1 旨在探索 QALT 生成测试输入的揭错能力. 对于种子池 (即测试集) 中的每个种子 (即测试输入),
本文分别使用 QALT、QAQA、QAAskeR 这 3 种技术各生成一个新的测试用例对被测智能问答系统进行测试,
并记录每种测试技术检测到违反蜕变关系的测试输入数量. 违反蜕变关系表明智能问答系统中存在潜在缺陷. 表 2
分别展示了由 QALT、QAQA、QAAskeR 技术检测到缺陷的数量, 括号中的数字是揭错率, 即违反蜕变关系的测
试输入所占的比例. 总体而言, 相比 QAQA 与 QAAskeR, QALT 检测到了更多的缺陷, 并产生了更大的揭错率. 对
于待测模型 ChatGPT, QALT 报告的缺陷总体上比 QAQA 和 QAAskeR 分别多检测 2 013 和 1 744 个. 同时, 对于
待测模型 ChatGLM, QALT 报告的缺陷总体上比 QAQA 和 QAAskeR 分别多检测 1 137 和 2 540 个. QALT 检测出
来的缺陷数量和比例在不同的数据集上有不同的表现. 对于不同的待测模型, QALT 均在 SQuAD2 数据集上展现
出最高的揭错率 (分别为 25.9% 与 25.7%). 在 SQuAD2 数据集中, 问题的答案均可使用上下文的子串内容表示,
而 BoolQ 与 NarQA 数据集均不使用上下文的子串内容作为答案. 这说明逻辑推理问题更容易影响到智能问答系
统定位原文信息的能力. 此外, 由于 QALT 的测试效果并不依赖于待测系统的回答范式, 因此, 在不同数据集上
QALT 均表现稳定且良好.
表 2 检测到缺陷的数量和揭错率
BoolQ SQuAD2 NarQA 总和
待测软件 测试技术
数量 揭错率 (%) 数量 揭错率 (%) 数量 揭错率 (%) 数量 揭错率 (%)
QALT 682 20.9 3 074 25.9 798 23.1 4 554 24.5
ChatGPT QAQA 674 20.6 1 524 12.8 343 9.9 2 541 13.7
QAAskeR 19 0.6 2 506 21.6 285 8.2 2 810 15.1
QALT 868 26.5 3 053 25.7 772 22.3 4 693 25.2
ChatGLM QAQA 840 25.7 1 844 15.5 872 25.2 3 556 19.1
QAAskeR 64 2.0 2 194 18.5 282 8.1 2 540 13.7
由于每种方法的测试结果均存在一定量的误报, 所以对比不同方法的误报率同样重要. 为此, 我们分别对 3 种
方法在每个数据集上生成的测试用例中随机抽取 100 个测试用例, 并检测报告的缺陷是否是真阳性的. 分析结果
发现, QALT 在 BoolQ、SQuAD2 和 NarQA 这 3 个数据集上采样结果的真阳性分别为 87%、88%、85%. QAQA
和 QAAskeR 在这 3 个数据集上采样结果的真阳性率分别为 98%、97%、98% 和 22%、60%、65%. 我们可以发
现 QALT 测试方法的真阳性率显著高于 QAAskeR 但略低于 QAQA. 这是因为 QAQA 为了保证较高的测试精准
度, 生成的测试输入并不会对原始问题本身进行修改, 这使得 QAQA 有着极高的测试精准度. 同时, 这种测试用例
中添加干扰知识的行为无法对智能问答系统的逻辑推理能力进行测试. 真阳性缺陷的期望数量等于缺陷检测技术
报告的缺陷数量与真阳性率的乘积. 通过将真阳性率和表 2 中检测到缺陷的数量对应项相乘, 我们可以得到每种
测试方法检测到真实缺陷的期望数量. 最终 QALT、QAQA 和 QAAskeR 在这 3 种数据集上检测真实缺陷的总体

