Page 199 - 《软件学报》2025年第7期
P. 199
3120 软件学报 2025 年第 36 卷第 7 期
因此, 在实际测试过程中我们有如下希望.
(1) 构建某种测试剖面, 并将其作为测试策略来选取测试用例, 以生成符合特定概率分布的测试用例, 并且相
似的测试用例被选中的概率也应该相似, 这样可以防止生成一些意料之外的无效场景.
(2) 对于同一测试用例 t, 相似的测试剖面生成 t 的概率也应该相似, 这样方便我们设计测试剖面更新策略, 使
测试剖面能够更趋向于生成 t 或避免生成 t.
基于此, 本节通过离散化思想提出一种基于为威胁区域离散化的测试剖面 (threat area discretization based
profile, TAD 剖面).
假设智能体的任务空间 M X ×Y 的矩形区域, 将 M 离散化为若干格子样式的子区域 (如图 5 所示):
为一个
∪
M = M i j (16)
i=1,2,...,D 1 ; j=1,2,...,D 2
其中, D 1 、D 2 分别为任务空间横向与纵向划分的份数. 每个子区域 M i j 就可以看成是长为 X/|D 1 |, 宽为 Y/|D 2 | , 中
( ( ) ( ))
X 1 Y 1
心为 · i− , · j− 矩形. 为了简洁, 本文只考虑正方形任务空间, 并且横纵划分的份数相等, 因为任
|D 1 | 2 |D 2 | 2
D 1 = D 2 = D.
何矩形任务空间都可以通过在正方形场景中填充威胁的方式得到, 因此在后面的论述中我们令
200
180
160
140
120
100
80
60
40
20
0
0 20 40 60 80 100 120 140 160 180 200
图 5 TAD 剖面矩阵
M i j 包含威胁的概率来设计测试剖面. 首先, 我们规定, 每个子区域包
在此基础上, 我们通过指定每个子区域
含威胁的情况是二值的, 即子区域 M ij 不是被某个威胁填满 (即 M i j ∈ Obs), 就等价于不包含威胁 (即 ∀obs ∈ Obs,
obs∩ M i j = ∅). 定义 Q = (q ij ) D×D 为任务空间 M 的威胁概率矩阵, 其中 q i j 表示子区域 M i j 中包含威胁的概率, 即
q i j = P(M i j ∈ Obs)(如图 5 中每个格子内部的数字所示). 借助威胁概率矩阵 Q, 我们就可以按照概率生成每个子区
M i j 的威胁, 进而生成整个测试用例. 因此, 对于每个 P , 使得在离散化假设下的,
Q
域 Q, 都可以确定一个测试剖面
基于该剖面生成任何威胁分布 Obs 的概率都可以由公式 (17) 计算.

