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

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


                 中, 候选测试输入的对应部分分别与原始测试输入的对应结构进行对比, 并基于对比结果从                             N  个候选测试输入中
                 选出一条最优测试输入作为最终的测试任务. 其中, 筛除模块用于剔除不符合规范的测试输入, 排序模块用于筛选
                 出最优的测试输入.











                                                    图 4 QALT  误报实例



                                                         原始测试输入






                                             变异部分结构               未变异部分结构


                                               筛除模块


                                                                    排序模块
                           候选测试输入1
                                                                           1
                                                                           3
                           候选测试输入2

                                                                           2
                                                                           3
                           候选测试输入3                                                   最优测试输入
                                              图 5 基于依存句法分析的选择策略

                    在筛除模块, QALT     主要关心测试输入中发生替换部分的结构              (即变异部分结构), 这部分结构由依靠生成模型
                 得到的描述性语句所构成. 在替换名词词组的过程中, 由于描述性语句是作为一个整体嵌入在候选测试输入里, 所以
                 描述性语句本身的语法结构不可变化, 如果发生变化则认为该候选测试输入不可用. 所以, 筛除模块专注于对比变异
                 部分结构中各个词语的依存对象和依存关系, 以此严格保证变异前后变异部分结构的一致性. 如果任何一个词语的
                 依存对象或者依存关系与原始测试输入不一致, 则认为当前测试输入的语义发生了变化, 从而排除这条测试输入.
                    在排序模块中, QALT     则主要关心测试输入中未发生替换的部分, 即除去测试输入中描述性语句部分外                           (即未
                 变异部分结构) 的各个词语, 使用该部分对应的依存对象和依存关系对测试输入进行排序. 具体来说, 本文使用依
                 存句法分析直接获取句子中不同词语之间的依存关系. 依存关系可以使用三元组表示为<obj1, obj2, relation>. 其
                 中  obj1  和  obj2  代表句子中的两个词语, 且  obj1  的依存对象为    obj2. relation  表示这两个词语之间的依存关系. 这
                 些关系包括主谓关系, 动宾关系, 定语关系, 状语关系等. 排序过程中, QALT                   会遍历未变异部分结构中的每个词
                 语, 如果当前词语的依存关系或者依存对象出现不一致, 则认为出现一次错位, 随后按照公式                            (1) 计算相似度得分,
                 并选出候选测试输入中相似度得分最高的测试输入作为最优测试输入.
   69   70   71   72   73   74   75   76   77   78   79