Page 68 - 《软件学报》2026年第2期
P. 68

沈庆超 等: 智能问答系统逻辑推理测试                                                              547


                    ChatGPT 和 [7]  ChatGLM [37] 就是这种新趋势的代表. 其中  ChatGPT  是由  OpenAI 公司开发的一种人工智能技术,
                 它基于   GPT-3.5  模型, 使用指令微调和基于人类反馈的强化学习进行训练, 对人工智能领域产生了深远影响.
                 ChatGPT  具有强大的语言生成能力, 能够生成连贯、多样化的文本, 适用于智能问答、机器翻译等领域. ChatGPT
                 的优点在于语言生成能力强, 适用于多样化任务, 但该模型规模较大, 部署和运行成本高. ChatGLM                         则是由清华大
                 学  KEG  实验室和智谱   AI 公司共同训练的语言模型, 这种模型架构基于               GLM (general language model) 架构, 具有
                 62 亿参数. 它结合了模型训练和有监督微调技术, 优化了中文问答和对话能力, 生成符合人类偏好的回答. ChatGLM
                 适用于对话系统、垂直领域知识问答等场景. ChatGLM               的优点在于模型已经开源, 并且支持多语言问答和对话能
                 力优, 部署门槛低.

                  4   逻辑引导的蜕变测试技术

                  4.1   整体架构
                    本文采用蜕变测试技术         [38] 解决基于参考答案的测试技术依赖人工标注的局限性. 蜕变测试是一种基于特定
                 领域知识构建蜕变关系来检测软件缺陷的方法. 首先定义一个包含问题和上下文的测试输入, 表示为                                t = {q,c}. 然
                                                                  P(t). 接下来, QALT  基于  t 构造一个新的测试输入
                 后, 由被测智能问答系统对这个输入生成一个预测答案, 表示为
                              ′
                 ′   ′  ′    t  语义等价于   t. 因此, P(t') 应在语义上与  P(t) 等价. 如果  P(t) 与  P(t') 语义不等价, 则表明该测试用
                 t = {q ,c }, 其中
                 例检测到智能问答系统中的一个缺陷.
                    相较于已有的测试方法, QALT         最显著的特点在于避免了测试方法对问答系统回答范式和数据集本身的依
                 赖, 并且能够测试智能问答系统的逻辑推理能力. 具体来说, QAAskeR                 在生成测试用例时需要获取问答系统在原
                 始测试输入上的回答, 生成测试用例的有效性依赖于模型的回答范式. 然而, 基于大型语言模型的问答模型的回答
                 范式并不固定限制了该方法的泛用性. 与此同时, QAQA                在生成测试输入的过程中需要将待测模型的数据集作为
                 搜索空间, 在无法访问待测模型的数据集时, 该方法不再适用. 与                  QAQA  和  QAAskeR  不同, 为了摆脱测试方法对
                 模型回答范式和数据集本身的依赖性, QALT             通过自然语言生成模型         GPT-Neo  实现了测试输入中关键名词词组
                 的变异, 确保变异前后测试输入语义和逻辑的一致性. 这一做法有效地解决了现有方法测试场景受限的问题, 同时
                 实现了对智能问答系统逻辑推理能力的测试目的.
                    智能问答系统旨在用自然语言回答人类提出的问题, 因此保证                     QALT  生成测试用例的自然性非常重要. 更自
                 然的测试输入所揭示的错误更有可能在实践中对用户体验产生负面影响. 为了实现这一目标, QALT                               针对关键变
                 异位置和关键名词词组选择分别设计相应的选择策略以提升变异测试用例的自然性. 与此同时, Huang                               等人  [39] 研
                 究发现, 在对   4  种不同类型的    NLP  软件进行测试时, 采用基于单词级别变异的测试输入方法会产生高达                       44%  的
                 误报率. 误报率高的测试技术会降低测试方法的可靠性, 同时增加研究人员因误报数据分析而产生的人工成本. 因
                 此, 确保测试结果的低误报率同样重要. 为此, 本文根据变异方法生成测试用例的特点进一步提出了基于依存分析
                 的选择策略来提高测试结果的准确性.
                    图  1  展示了  QALT  的技术概览. 如图所示, QALT    包含  3  个主要阶段: 测试用例生成阶段、测试输入选择阶段
                 和测试输入执行阶段. 其中, QALT        的前两个阶段负责生成高质量的包含逻辑推理的测试用例                     (包括高揭错能力、
                 低误报率、高自然率), 最后一个阶段为测试预言的构造. 这                 3  个阶段共同组成了     QA  系统的逻辑测试的完整流程.
                 具体来说, 在测试输入生成阶段, QALT          设计了  3  种逻辑推理相关的蜕变关系         (第  4.2  节), 对于每个原始测试输入
                 (包括问题和上下文), QALT     随机从本文设定的蜕变关系库中选取一种具体蜕变关系. 接着, 为了生成自然性高的测
                 试输入, QALT  根据所选取的蜕变关系及问题和上下文的特点, 确定原始测试输入中最适合进行变异的位置和待变
                 异的名词词组, 基于选定的名词词组生成相应的描述性语句, 并与原始测试输入相结合生成候选测试用例                                     (第
                 4.3  节). 接着, 在测试输入选择阶段, QALT     基于依存分析方法从多个候选测试输入中选择出最佳的测试用例用于
                 后续的测试任务      (第  4.4  节). 最后, 在测试输入执行阶段, QALT   通过文本相似度计算来判断测试输入的预测答案与
                 预期答案是否在语义上一致. 如果两者存在显著的语义差异, 则认为                    QALT  检测到了智能问答系统中的一个缺陷.
   63   64   65   66   67   68   69   70   71   72   73