基本路径测试ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 7
举例:基本路径测试(1)
从小到大排序:
Void SelectSort( datalist &list) {
for ( int i=0; i<list.n-1; i++ ) { int k=i; for( int j=i+1; j<list.n; j++) if(list.V[j].getKey()<list.V[k].getKey()) k=j; if (k!=i) Swap(list.V[i], list.V[k]); }
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 4
基本路径测试 (续3)
环路复杂性度量V(G)(复习)
环路复杂性度量V(G)的意义:等 于程序中独立路径的条数。
三种计算方法:
1. V(G)=控制流程图中区域的个 数
2. V(G)=m-n+2p (m和n分别 是控制流程图中的边数和节点 数,p为强连通分量)
3. V(G)=P+1(P是控制流程图中 的谓词节点数)
1
2,3
6
4,5
78
9
10
11
谓词结点:代表条件判断的结点 软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 5
基本路径测试(续4)
例如,在图示的控制流图中, 一组独立的路径是
path1:1 – 11 path2:1 - 2 - 3 - 4 - 5 - 10 - 1 – 11 path3:1 - 2 - 3 - 6 - 8 - 9 - 10 - 1 – 11 path4:1 - 2 - 3 - 6 - 7 - 9 - 10 - 1 - 11
1
2,3
6
4,5
78
9
10
11
路径 path1,path2,path3,path4组成了控 制流图的一个基本路径集。
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 6
基本路径测试(续5) 3. 导出测试用例
导出测试用例,确保基本路径集中的每一 条路径的执行。 根据判断结点给出的条件,选择适当的数 据以保证某一条路径可以被测试到 — 用逻 辑覆盖方法。 每个测试用例执行之后,与预期结果进行 比较。
11
11
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 3
基本路径测试(续2) 2. 程序环路复杂性、基本路径集
程序的环路复杂性给出了程序基本路径 集中的独立路径条数。
从控制流程图来看,一条独立路径是至 少包含有一条在其它独立路径中从未有 过的边的路径。
4 5
6
9
j=j+1;
i=i+1;
8
11
程序流程图中:list.V[j].getKey
7
Hale Waihona Puke Baidu10
简写为V[j]; list.n简写为n.下同.
8
11
环路复杂性=5 软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 9
举例:基本路径测试(3)
基本路径集:
预期结果: k=1,V[0]=1,V[1]=2
6 V[j]<V[k] F
}
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 8
举例:基本路径测试(2)
1 i=0;
1
2 i<n-1
return
4 k=i; j=i+1;
3
2
3
5 j<n F
T
6 V[j]<V[k] F
T k=j; 7
F
i<>k
9
T 10 Swap(list.V[i], list.V[k]);
10
-11-2-3
8
11
(或1-2-4-5-6-8-5-9-11-2-3)
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 10
举例:基本路径测试(4)
测试用例 Path1:1-2-3
取n=1
Path2 : 1-2-4-5-9 -10-11 -2-3
软件工程
Software Engineering
软件工程 Software Engineering
成都信息工程学院 计算机系 1
基本路径测试—白盒测试用例设计之二
★基本路径测试
基本路径测试方法把覆盖的路径数压缩到一定限 度内,使得程序中的循环体最多只执行一次。
它是在程序控制流程图的基础上,分析控制构造 的环路复杂性,导出基本可执行路径集合,设计 测试用例的方法。设计出的测试用例要保证在测 试中,程序的每一个可执行语句至少要执行一次。
步骤: 1.绘制程序的控制流图
2.由环路复杂性得到基本路径集 3. 导出测试用例
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 2
基本路径测试(续1) 1.绘制程序的控制流程图(复习)
1
1
2
2,3
3
6
7 9 8
4 5
10
6 4,5 78
9
10
取n=2
预期结果:路径5-9-1011-2-3不可达
Path3 : 1-2-4-5-9 -11 -2-3
取n=2,预期结果:路径 5-9-11-2-3不可达
1 i=0;
2 i<n-1
return
4 k=i; j=i+1;
3
5 j<n F
T
6 V[j]<V[k] F
T k=j; 7
F
i<>k
9
T 10 Swap(list.V[i], list.V[k]);
j=j+1; 8
i=i+1; 11
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 11
举例:基本路径测试(5)
1 i=0;
Path4 路径A: 1-2-4-5-
2 i<n-1
6-7-8-5-9-10-11-2-3
4 k=i; j=i+1;
取n=2,V[0]=2,V[1]=1 5 j<n F T
1
Path1: 1-2-3
2
3
Path2: 1-2-4-5-9-10-11-2-3
Path3: 1-2-4-5-9-11-2-3
4
Path4: 1-2-4-5-6-7-8 - 5-9- 5
10-11-2-3
6
9
(或1-2-4-5-6-7-8 - 5-9-11-2
-3)
Path5: 1-2-4-5- 6-8- 5-9-10 7
举例:基本路径测试(1)
从小到大排序:
Void SelectSort( datalist &list) {
for ( int i=0; i<list.n-1; i++ ) { int k=i; for( int j=i+1; j<list.n; j++) if(list.V[j].getKey()<list.V[k].getKey()) k=j; if (k!=i) Swap(list.V[i], list.V[k]); }
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 4
基本路径测试 (续3)
环路复杂性度量V(G)(复习)
环路复杂性度量V(G)的意义:等 于程序中独立路径的条数。
三种计算方法:
1. V(G)=控制流程图中区域的个 数
2. V(G)=m-n+2p (m和n分别 是控制流程图中的边数和节点 数,p为强连通分量)
3. V(G)=P+1(P是控制流程图中 的谓词节点数)
1
2,3
6
4,5
78
9
10
11
谓词结点:代表条件判断的结点 软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 5
基本路径测试(续4)
例如,在图示的控制流图中, 一组独立的路径是
path1:1 – 11 path2:1 - 2 - 3 - 4 - 5 - 10 - 1 – 11 path3:1 - 2 - 3 - 6 - 8 - 9 - 10 - 1 – 11 path4:1 - 2 - 3 - 6 - 7 - 9 - 10 - 1 - 11
1
2,3
6
4,5
78
9
10
11
路径 path1,path2,path3,path4组成了控 制流图的一个基本路径集。
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 6
基本路径测试(续5) 3. 导出测试用例
导出测试用例,确保基本路径集中的每一 条路径的执行。 根据判断结点给出的条件,选择适当的数 据以保证某一条路径可以被测试到 — 用逻 辑覆盖方法。 每个测试用例执行之后,与预期结果进行 比较。
11
11
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 3
基本路径测试(续2) 2. 程序环路复杂性、基本路径集
程序的环路复杂性给出了程序基本路径 集中的独立路径条数。
从控制流程图来看,一条独立路径是至 少包含有一条在其它独立路径中从未有 过的边的路径。
4 5
6
9
j=j+1;
i=i+1;
8
11
程序流程图中:list.V[j].getKey
7
Hale Waihona Puke Baidu10
简写为V[j]; list.n简写为n.下同.
8
11
环路复杂性=5 软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 9
举例:基本路径测试(3)
基本路径集:
预期结果: k=1,V[0]=1,V[1]=2
6 V[j]<V[k] F
}
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 8
举例:基本路径测试(2)
1 i=0;
1
2 i<n-1
return
4 k=i; j=i+1;
3
2
3
5 j<n F
T
6 V[j]<V[k] F
T k=j; 7
F
i<>k
9
T 10 Swap(list.V[i], list.V[k]);
10
-11-2-3
8
11
(或1-2-4-5-6-8-5-9-11-2-3)
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 10
举例:基本路径测试(4)
测试用例 Path1:1-2-3
取n=1
Path2 : 1-2-4-5-9 -10-11 -2-3
软件工程
Software Engineering
软件工程 Software Engineering
成都信息工程学院 计算机系 1
基本路径测试—白盒测试用例设计之二
★基本路径测试
基本路径测试方法把覆盖的路径数压缩到一定限 度内,使得程序中的循环体最多只执行一次。
它是在程序控制流程图的基础上,分析控制构造 的环路复杂性,导出基本可执行路径集合,设计 测试用例的方法。设计出的测试用例要保证在测 试中,程序的每一个可执行语句至少要执行一次。
步骤: 1.绘制程序的控制流图
2.由环路复杂性得到基本路径集 3. 导出测试用例
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 2
基本路径测试(续1) 1.绘制程序的控制流程图(复习)
1
1
2
2,3
3
6
7 9 8
4 5
10
6 4,5 78
9
10
取n=2
预期结果:路径5-9-1011-2-3不可达
Path3 : 1-2-4-5-9 -11 -2-3
取n=2,预期结果:路径 5-9-11-2-3不可达
1 i=0;
2 i<n-1
return
4 k=i; j=i+1;
3
5 j<n F
T
6 V[j]<V[k] F
T k=j; 7
F
i<>k
9
T 10 Swap(list.V[i], list.V[k]);
j=j+1; 8
i=i+1; 11
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院 11
举例:基本路径测试(5)
1 i=0;
Path4 路径A: 1-2-4-5-
2 i<n-1
6-7-8-5-9-10-11-2-3
4 k=i; j=i+1;
取n=2,V[0]=2,V[1]=1 5 j<n F T
1
Path1: 1-2-3
2
3
Path2: 1-2-4-5-9-10-11-2-3
Path3: 1-2-4-5-9-11-2-3
4
Path4: 1-2-4-5-6-7-8 - 5-9- 5
10-11-2-3
6
9
(或1-2-4-5-6-7-8 - 5-9-11-2
-3)
Path5: 1-2-4-5- 6-8- 5-9-10 7