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  种数据集上检测真实缺陷的总体
   72   73   74   75   76   77   78   79   80   81   82