Page 197 - 《软件学报》2025年第7期
P. 197

3118                                                       软件学报  2025  年第  36  卷第  7  期



                     正向流程-根据测试剖面进行测试用例生成、执行、评估




                          测试剖面 (测试策略)                 测试用例 t                   测试结果
                                                                             路径3
                                           测                        测             路径1           测试结
                                                                                                果评估
                                           试                        试       路径2                  S(t)
                                           生                        执
                                           成                        行


                                                   抽取测试剖面增量
                                                                                      与上一个测试
                                                                                      用例相比, 失效
                      更新测试剖面                                                          度是否提升?
                                                                     −ε
                                                                            S(t)>S(t−1)
                                                                       否
                                                                             是


                                                                  ε   否
                                                                             S(t)>S(t )
                                                                                 *
                                                                                      失效度是否大
                                                                                      于当前最优的
                                                                  2ε       是
                     反馈流程-更新测试剖面                                                      测试用例?
                                                    图 3 DRT-PP  框架图

                    基于该思想, DRT-PP    分为正向流程和反馈流程. 其正向流程是正常的测试过程, 包含测试用例生成、测试用
                 例执行、测试用例的结果分析, 如图           3  的上半部分所示. 所不同的是, DRT-PP       根据路径规划场景的特性构建测试
                 剖面, 并以该剖面作为测试策略生成测试用例. 根据定义                 4, 路径规划算法的输入 (即测试用例         t) 为环境  E, 而我们
                 假设任务场景     M  固定, 则生成一个测试用例就是要确定威胁集合               Obs 的分布. 因此, DRT-PP   的测试剖面应为威
                 胁分布的概率密度分布函数:          h : O → R, 其中,  O 为所有可能的  Obs 分布的集合. 考虑到方法的可行性, 本文将场
                                               200×200 的任务空间    M  按每  10  个单位进行切分, 则整个任务空间就包含
                 景空间进行某种程度的离散化, 例如将
                 400  个子区域, 而在构造测试用例时我们需要考虑每个子区域内是否包含威胁. 经离散化后的测试剖面就可以表
                 示为测试用例的概率函数, 即:

                                                       P : T → [0,1]                                 (13)
                 满足:

                                                        ∑
                                                           P(t) = 1,
                                                        t∈T
                 其中,  T  为所有可能测试用例的集合, 而        P(t) 为测试用例   t 被生成的概率. 这样, 我们就可以根据测试剖面来生成
                 测试用例, 这里将通过测试剖面         P 生成测试用例     t 的操作记为:

                                                       t = Generate(P)                               (14)
                 具体测试剖面的构建方法将在第           2.3  节介绍.
                    在测试过程中, DRT-PP     需要根据被测算法的输出实时动态地更新测试剖面, 以触发较大的失效度                          S (t), 如
                 图  3  下半部分所示. 现假设已经生成并执行的测试用例集为               T = {t 1 ,t 2 ,...,t N T }, 而执行这些测试用例后的得到的测
                             T
                                                  t
                                     t
                                          t
                 试结果集合为     L = {PTH 1 ,PTH 2 ,...,PTH N T  }, 则  DRT-PP  的测试剖面调整策略  φ 应与当前测试集  T、当前测试
                          T                                          P N T +1  就可以按公式
                 集的输出   L  以及当前的测试剖面       P N T  有关, 那么更新后的测试剖面                     (15) 计算.
   192   193   194   195   196   197   198   199   200   201   202