软件测试
基于图的测试技术
基于图的测试
图一般来自于以下资源
控制流图
活动图
状态图
基于图的测试试图以一种标准去“覆盖” 图
图的定义
节点集合N, N 非空
初始节点集合N , N 非空
0 0
终止节点集合N , N 非空
f f
边集合E, 边是从一个节点连接到另一个节点
( n , n ), i 是前趋,j 后继
i j
图举例
0 0 1 2
1 2 3 4 5 6
3 7 8 9
N0 = { 0 } N0 = { 0, 1, 2 }
Nf = { 3 } Nf = { 7, 8, 9 }
图的路径
路径(path) :节点的有序序列– [n , n , …, n ]
1 2 M
每个节点对是一个边
长度(length): 边的数量
单节点的路径长度为0
子路径(subpath) : 路径p的子节点序列,称为p的子路径
Reach (n) : 能从节点n到达的子图
路径
[ 0, 3, 7 ]
0 1 2 [ 1, 4, 8, 5, 1 ]
[ 2, 6, 9 ]
3 4 5 6 Reach (0) = { 0, 3, 4, 7,
8, 5, 1, 9 }
Reach ({0, 2}) = G
7 8 9
Reach([2,6]) = {6, 9}
测试路径和SESE图
测试路径(test path) : 从初始节点出发,终止节点结束的路径
测试路径表示测试用例的执行
一些测试路径可以测试到
一些测试路径不可能测试到
SESE 图: 所有的测试路径从一个节点出发,终止于另一个节点
单入口,单出口
N0 和Nf 只有一个
图例
1 4 4个测试路径
0 3 6 [ 0, 1, 3, 4, 6 ]