基本路径测试
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
举例:基本路径测试(3)
基本路径集: Path1: 1-2-3 Path2: 1-2-4-5-9-10-11-2-3 Path3: 1-2-4-5-9-11-2-3 Path4: 1-2-4-5-6-7-8 - 5-9-
10-11-2-3 (或1-2-4-5-6-7-8 - 5-9-11-2 -3) Path5: 1-2-4-5- 6-8- 5-9-10 -11-2-3 (或1-2-4-5-6-8-5-9-11-2-3)
i<>k
9
T 10 Swap(list.V[i], list.V[k]); i=i+1; 11
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院
Βιβλιοθήκη Baidu14
作业
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 ——第七章 软件测试 成都信息工程学院 计算机学院
16
1 2,3 6 7 9 10 11 8 4,5
路径 path1,path2,path3,path4组成了控 制流图的一个基本路径集。
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院
6
基本路径测试(续5)
3. 导出测试用例
导出测试用例,确保基本路径集中的每一 条路径的执行。 根据判断结点给出的条件,选择适当的数 据以保证某一条路径可以被测试到 — 用 逻辑覆盖方法。 每个测试用例执行之后,与预期结果进行 比较。
软件工程 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是控制流程图中的 谓词节点数) 谓词结点:代表条件判断的结点
11
举例:基本路径测试(5)
1 i=0; i<n-1 k=i; j=i+1; 5 6 j<n T V[j]<V[k] T k=j; 7 j=j+1; 8 F F F return 3 2 4
Path4 路径A: 1-2-4-56-7-8-5-9-10-11-2-3 取n=2,V[0]=2,V[1]=1 预期结果: k=1,V[0]=1,V[1]=2
步骤:
1.绘制程序的控制流图 2.由环路复杂性得到基本路径集
3. 导出测试用例
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院
2
基本路径测试(续1)
1.绘制程序的控制流程图(复习)
1 2 6 7 9 8 11 3 4
1 2,3
6
7 9 10 11 8
1 2,3 6 7 9 10 11 8 4,5
软件工程 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
软件工程 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]); } }
i<>k
9
T 10 Swap(list.V[i], list.V[k]); i=i+1; 11
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院
12
举例:基本路径测试(6)
Path4:路径B: 1-2-4-5-6-7-8-5-911-2-3 取n=2,V[0]=2,V[1]=1 预期结果:
13
举例:基本路径测试(7)
Path5:
路径A: 1-2-4-5-6-8-5-9-10-112-3
4 1 2 i=0; i<n-1 k=i; j=i+1; 5 j<n T V[j]<V[k] T k=j; 7 j=j+1; 8 F F F return 3
取n=2,V[0]=1,V[1]=2 预期结果:k=0,路径9-10-11-26 3不可到达 路径B: 1-2-4-5-6-8-5-9-11-2-3 取n=2,V[0]=1,V[1]=2 预期结果:k=0,V[0]=1,V[1]=2
4,5
5 10
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院
3
基本路径测试(续2) 2. 程序环路复杂性、基本路径集
程序的环路复杂性给出了程序基本路径 集中的独立路径条数。 从控制流程图来看,一条独立路径是至 少包含有一条在其它独立路径中从未有 过的边的路径。
(1) 试画出它的程序流程图 (2)并计算它的环路复杂性; (3) 用基本路径覆盖法给出测试路径。 (4) 为各测试路径设计测试用例(循环次数限定为0次、1次)。
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院
15
练习
2.下面是一趟插入排序的程序, 把R[i+1]插入到R[1..i] 的适当位置 R[0] = R[i + 1]; j = i; while ( R[j] > R[0] ) { R[j + 1] = R[j]; j = j -1; } R[j + 1] = R[0]; (1) 试画出它的程序流程图 (2)并计算它的环路复杂性; (3) 用基本路径覆盖法给出测试路径。 (4) 为各测试路径设计测试用例(循环次数限定为0次、 1次)。
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院
8
举例:基本路径测试(2)
1 2 4 5 6 i=0; i<n-1 k=i; j=i+1; j<n T V[j]<V[k] T k=j; 7 j=j+1; 8 F F F return 3
1 2 4
1 2 4 5 6 9 3
7 8
10 11
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院
10
举例:基本路径测试(4)
测试用例 Path1:1-2-3 取n=1
Path2 : 1-2-4-5-9 -10-11 -2-3
4 5 6 1 2 i=0; i<n-1 k=i; j=i+1; j<n T V[j]<V[k] T k=j; 7 j=j+1; 8 F F F return 3
软件工程
Software Engineering
软件工程 Software Engineering
成都信息工程学院 计算机系
1
基本路径测试—白盒测试用例设计之二
★基本路径测试
基本路径测试方法把覆盖的路径数压缩到一定限 度内,使得程序中的循环体最多只执行一次。 它是在程序控制流程图的基础上,分析控制构造 的环路复杂性,导出基本可执行路径集合,设计 测试用例的方法。设计出的测试用例要保证在测 试中,程序的每一个可执行语句至少要执行一次。
4 1 2 i=0; i<n-1 k=i; j=i+1; 5 6 j<n T V[j]<V[k] T k=j; 7 j=j+1; 8 F F F return 3
k=1,路径9-11-3不可到达
i<>k
9
T 10 Swap(list.V[i], list.V[k]); i=i+1; 11
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院
i<>k 9
3
5 6 9
T 10 Swap(list.V[i], list.V[k]); i=i+1; 11
程序流程图中:list.V[j].getKey 简写为V[j]; list.n简写为n.下同. 环路复杂性=5
7 8
10 11
9
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院
取n=2 预期结果:路径5-9-1011-2-3不可达
Path3 : 1-2-4-5-9 -11 -2-3
i<>k
9
T 10 Swap(list.V[i], list.V[k]); i=i+1; 11
取n=2,预期结果:路径 5-9-11-2-3不可达
软件工程 Software Engineering ——第七章 软件测试 成都信息工程学院 计算机学院