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

550                                                        软件学报  2026  年第  37  卷第  2  期


                    ● MR3: 等价推理问题及上下文        (equivalence reasoning question & context, ERQC). 基于上述两种变异规则, 本
                 文还进一步构造了一个高阶的变异规则, 用于生成更复杂的蜕变关系. MR3                       构建了一种综合性的蜕变关系, 该蜕
                 变关系结合了     MR1  和  MR2  的概念, 通过同时生成等价的问题和上下文, 以测试智能问答系统对于问题和上下文
                                                                                     t = {q ,c }, 其中  q  与  q', c
                                                                                           ′
                                                                                         ′
                                                                                     ′
                 的复合推理能力. 具体来说, 给定一个测试输入              t = {q,c}, 如果构造出一个新的测试输入
                    ′
                 与  c  均在逻辑上等价, 那么智能问答系统应当能够基于其问题推理能力和上下文推理能力, 生成语义上一致的答
                           ′
                 案   P(t) 和  P(t ). 在构造  t'的过程中, QALT  分别在问题  q  和上下文  c 中插入描述性语句   d_q  和  d_c, 并用这些语句
                 中等价描述替换目标名词词组           n_q  和  n_c. 这种方法分别在原始测试输入的问题和上下文中新增了一层推理关系,
                 但模型的预测答案不应改变.
                    图  2(c) 使用一个例子展示了如何使用变异构建             ERQC  蜕变关系. 在该例中, 描述性句子“the only source of
                 funding for the IPCC”和“the main source of information on climate change”分别被插入到原始问题和上下文中, 形成
                 新的问题以及新的上下文. 这些新的问题和上下文仅添加了额外的补充事实, 并建立了一层额外的推理关系, 而不
                 会破坏其他有助于获得答案的原始事实. 因此, 新生成的测试输入的答案在语义上应与原始问题的答案相同.
                  4.3   测试输入自然性增强策略
                    应用上述    3  种蜕变关系生成测试输入面临的一个重要性挑战是如何选择变异组件, 包括变异发生的句子位置
                 和施加变异的具体名词词组, 变异位置的选择对生成测试输入的自然性有显著影响. 具体来说, 由于上下文通常由
                 多个句子组成, 选取恰当的句子作为变异位置可以使变异发生在与问题直接相关的语句上, 从而增加变异后测试
                 输入与原始测试输入的相关性. 同理, 选择与上下文相关度越高的名词词组越有可能生成与当前上下文所讨论话
                 题有关的句子. 因此, 本文分别提出了关键变异位置和关键名词词组选择策略来保证生成测试输入的自然性.
                  4.3.1    关键变异位置选择策略
                    在应用   MR2  和  MR3  时, QALT  需要从上下文中选择变异发生的位置. 上下文中存在多个潜在变异位置可供
                 选择, 虽然各个位置都可能揭示系统的缺陷, 但不是所有位置的变异都会迫使模型进行必要的逻辑推理. 由于推理
                 问题答案的知识来源通常只包含在上下文部分的几个句子中. 这些句子包含了回答问题所需的关键要素, 与问题
                 具有强相关性. 为了提升测试模型的逻辑推理能力且增强生成测试输入的自然性, QALT                           需要在上下文中找到对
                 回答问题最关键的句子并对其进行变异. 为此, QALT              分别计算问题与上下文中每个句子的语义相似度, 并选择语
                 义相似度最高的句子作为关键变异位置.
                    关键变异位置的选择方法见算法            1. 由于问题是驱动智能问答系统预测的核心, QALT               提取测试输入中的问
                 题作为目标语义向量       (第  3  行), 然后通过测量其语义与搜索空间         (上下文) 中每个句子的语义之间的相似度来指导
                 变异位置的选择. 为了便于计算相似度, QALT            使用了先进的句子嵌入模型          SBERT [40] 来将问题和上下文进行向量
                 化, 该模型已被证明在句子语义表示方面是高效的. SBERT                有效地将问题和上下文中各个位置的句子转化为语义
                 向量  (第  7  行), 通过计算问题向量与每个句子向量之间的余弦相似度来识别出与问题最相关的句子                             (第  8–12
                 行), 并将其选作为最优变异位置, 用于后续测试输入的生成. 在进行变异前, QALT                     需要对上下文中的句子进行预
                 处理. 具体来说, QALT    使用共指消除模型      NeuralCoref [41] 将指示代词替换为对应的实体名词       (第  4  行), 这是因为指
                 示代词只有在特定语境下才有实际意义.
                 算法  1. 关键变异位置选择方法.

                 输入: q: 原始测试输入的问题; c: 原始测试输入的上下文;
                 输出: 上下文   c 中最适合变异的位置       p*.

                 1.  max := −∞;
                 2. p*  := ∅;
                 3. q_vector = sentence_embedding(q);
                 4. c = eliminate_coreference(c);
                 5. p_list = segment_sentences(c); //p_list 为包含了上下文中所有句子的列表
   66   67   68   69   70   71   72   73   74   75   76