一、实验名称
白盒测试——基本路径测试法
二、实验目的
白盒测试是结构测试,是依据被测程序的内部逻辑结构设计测试用例,驱动被测程序运行完成的测试,通过本实验希望:
1、掌握基本路径测试法的基本概念,用具体的例子体验基本路径测试法设计测试用例;
2、通过基本路径测试方法的学习实践,提高具体问题具体分析的能力。
三、基础知识
基本路径覆盖就是在程序控制流图的基础上,通过分析控制流图的环路复杂性,然后导出程序独立路径集合, 再设计测试用例覆盖所有独立路径的一种动态白盒测试方法。由于基本路径覆盖把程序中的所有节点都覆盖到了,所以程序中的每一条可执行语句也至少会被执行一次,也就是说满足基本路径覆盖就一定是满足语句覆盖的。
所谓独立路径是指,和其他的独立路径相比,至少有一个路径节点是新的,未被其他独立路径所包含。从程序的环路复杂度可导出程序基本路径集合中的独立路径条数:
程序独立路径条数 = 程序的环路复杂度
这是确保程序中每个可执行语句至少执行一次所必须的测试用例数目的下界。得出程序独立路径条数后,再根据控制流图,得出各条独立路径。所有独立路径组成独立路径集合,也就是基本路径集合。
基本路径覆盖测试法的基本步骤如下:
1) 画出程序控制流图;
2) 计算程序环路复杂性;
3) 确定独立路径集合;
4) 为每条独立路径设计测试用例。
基本路径覆盖应当确保基本路径集中的每一条路径都能被执行到。一般是为每条独立路径设计一个测试用例,执行这个测试用例时,就能确保该独立路径会被执行。
四、实验内容
下面是一个采用Euclid方法计算两个整数的最大公约数的程序代码:
Function MCM(Int x, Int y): IntInt m = 0;While(x > 0 and y > 0)If(x > y)Then x = x - y;Else y = y - x;EndIf // if结束EndWhile // while循环结束m = x + y;Return m;
End MCM
要求:
1、画出程序控制流图,计算控制流图的环路复杂度;
2、按基本路径测试设计测试用例。
五、实验要求
1、画出程序控制流图,计算控制流图的环路复杂度;
2、按基本路径测试设计测试用例;
1、程序控制流图
环路复杂度:V(G)=E−N+2P
- 节点数 N=8(包括开始和结束节点)。
- 边数 E=9。
- 连通分量数 P=1。
代入公式:V(G)=9−8+2×1=3
因此,该程序的环路复杂度为 3。
2. 基本路径测试设计测试用例
基本路径测试是一种白盒测试方法,旨在确保每条独立路径至少被执行一次。根据环路复杂度,我们需要设计 3 个测试用例来覆盖所有路径。
路径分析
- 路径 1: 进入循环,x > y,执行 x = x - y,直到 x <= y。
- 路径 2: 进入循环,x <= y,执行 y = y - x,直到 y <= x。
- 路径 3: 不进入循环(x <= 0 或 y <= 0)。
测试用例
- 测试用例 1: x=10,y=5
预期结果:最大公约数为 5。
路径:路径 1。
- 测试用例 2: x=5,y=10
预期结果:最大公约数为 5。
路径:路径 2。
- 测试用例 3: x=−1,y=10 或 x=10,y=−1
预期结果:最大公约数为 1。
路径:路径 3。