基本路径法
- 格式:pptx
- 大小:532.94 KB
- 文档页数:23
基本路径法的基本原理
基本路径法是一种在有向图中找到所有从起始点到目标点的路径的算法。
它的基本原理如下:
1. 创建一个空的路径集合,其中每个路径都以起始点为起点,并且初始路径只包含起始点。
2. 重复以下步骤,直到路径集合中没有新的路径可以添加:
- 在路径集合中选择一个尚未探索完全的路径。
- 获取路径中最后一个顶点的邻居顶点。
- 如果邻居顶点是目标点,则将该路径添加到路径集合中的完整路径中。
- 如果邻居顶点不是目标点,且还未在当前路径中出现,则根据当前路径创建一个新路径,将该邻居顶点添加到新路径中,并将新路径添加到路径集合中。
3. 返回路径集合中包含目标点的完整路径。
基本路径法的关键是选择尚未探索完全的路径并获取其最后一个顶点的邻居顶点。
这样可以通过不断扩展路径来找到所有可能的路径。
通过持续的路径扩展,最终可以找到从起始点到目标点的所有路径。
基本路径法的步骤引言基本路径法是一种软件测试技术,用于设计测试用例以覆盖软件系统中的路径。
路径是指在软件程序中穿过的一系列语句或指令的集合。
基本路径法可以帮助测试人员有效地识别出软件中的可能存在的错误和缺陷,并通过测试用例进行验证和修复。
本文将介绍基本路径法的步骤,以及如何应用它来设计并执行测试用例。
步骤一:确定控制流图•首先,我们需要根据软件系统的源代码或软件规格说明书来绘制控制流图。
控制流图是一种静态分析工具,用于描述程序中的控制结构,如顺序结构、条件结构和循环结构。
它由一组节点和有向边组成,每个节点代表程序中的一个语句或一个块,每个有向边表示控制流的方向。
通过控制流图,我们可以更直观地理解程序的结构和流程。
步骤二:计算圈复杂度•接下来,我们需要计算圈复杂度。
圈复杂度是一种度量软件源代码复杂性的指标,表示程序中独立的路径数目。
它可以帮助我们确定测试用例需要覆盖的路径数量。
通过计算控制流图的节点和边的数量,我们可以得出圈复杂度的值。
通常来说,圈复杂度的值越高,说明程序的复杂性越高,需要更多的测试用例来覆盖不同的路径。
步骤三:找出基本路径•在这一步中,我们需要找出控制流图中的所有基本路径。
基本路径是指从控制流图的一个节点到另一个节点的路径,其中不存在任何循环或条件分支。
可以通过深度优先搜索、图遍历或其他算法来找出基本路径。
在这个过程中,我们需要记录路径中的每个节点和边,以便后续的测试用例设计。
步骤四:设计测试用例•接下来,我们可以利用找出的基本路径来设计测试用例。
每个基本路径都对应着一个独立的测试用例。
我们可以选择路径中的一个节点作为起点,然后按照路径中的边的顺序执行程序,直到达到路径的终点。
在执行过程中,我们需要检查程序的行为和输出,以验证程序是否按照预期的方式执行。
通过设计不同的测试用例,我们可以尽可能地覆盖不同的基本路径,从而提高测试的覆盖率和有效性。
步骤五:执行测试用例•一旦测试用例被设计好,我们就可以开始执行测试。
⽩盒测试-基本路径法⼀、定义基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执⾏路径集合,从⽽设计测试⽤例的⽅法。
⼆、基本路径测试的步骤1)画出程序控制流图(前提是已经有了程序流程图)2)计算环路复杂度3)导出独⽴路径(可执⾏路径)4)设计测试⽤例三、认识控制流图1、描述程序控制流的⼀种图⽰⽅法,控制流图中只有2种图形符号:结点:标有编号的圆圈表⽰控制流线或边或连接:以箭头表⽰2、各种语句结构的控制流图3、认识什么是区域区域:边和结点圈定的区域叫做区域。
封闭区域+开放区域4、如果判断中的条件表达式是由⼀个或多个逻辑运算符(OR, AND, NAND, NOR) 连接的复合条件表达式,则需要改为⼀系列只有单条件的嵌套的判断。
If(a>1 and b<2){…}If(a>1){If(b<2){…}}(a)流程图四、环形复杂度的计算有以下三种⽅法计算环形复杂度:a)流图中封闭区域的数量+1个开放区域=总的区域数=环形复杂度b)给定流图G的环形复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;c)给定流图G的环形复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。
五、举例1)画出程序控制流图2)计算环形复杂度a)流图中封闭区域的数量+1个开放区域=总的区域数=环形复杂度3个封闭区域+1个开放区域=4b)给定流图G的环形复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;V(G)=E-N+2=11-9+2=4c)给定流图G的环形复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。
V(G)=P+1=3+1=43)导出独⽴路径注:因为环形复杂度为4,所以有四条独⽴路径PATH1:1-11PATH2:1-2-3-4-5-10-1-11PATH3:1-2-3-6-7-9-10-1-11PATH4:1-2-3-6-8-9-10-1-114)设计测试⽤例(略)。
基本路径法设计测试⽤例基本路径法是⽩盒测试中使⽤最为⼴泛的⽅法。
以下将介绍⼀下基本路径法如何使⽤。
基本路径法设计测试⽤例的步骤基本如下
1.由程序的源代码作为基础导出控制流图
2.计算控制流图的环路复杂度
3.确定基本路径
4.根据基本路径设计测试⽤例
接下来我举个例⼦
1 Int IsLeap(int year)
2 {
3if (year % 4 == 0)
4 {
5 if (year % 100 == 0)
6 {
7 if ( year % 400 == 0)
8 leap = 1;
9 else
10 leap = 0;
11 }
12 else
13 leap = 1;
14 }
15else
16 leap = 0;
17return leap;
18 }
这是⼀段简单的测试闰年的C语⾔代码。
1.画出控制流图
控制流图基本如上
2.计算复杂度V(G)
V(G)=E-V+2
=10-8+2
=4
所以可以判定共有四条基本路径
3.确定基本路径
1)(1,2,8)
2)(1,3,4,6,8)
3)(1,3,4,7,8)
4)(1,3,5,8)
4.设计测试⽤例
1)不能被4整除:1999
2)能被4整除,能被100整除,能被400整除:2000
3)能被4整除,能被100整除,不能被400整除:1900
4)能被4整除,不能被100整除:2004
以上。