基本路径测试
定义:基本路径测试法又称独立路径测试,是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计出相应的测试用例的方法。
所谓基本路径是指程序中至少引进一条新的语句或一个新的条件的任一路径。
步骤:
-
根据程序设计结果导出程序流程图的控制流图;
流程图用来描述程序控制结构。可将流程图映射到一个相应的流图(对于菱形框内的复合条件,要拆分成单一条件)。在流图中,每一个圆,称为流图的结点,代表一个或多个语句。一个处理方框序列和一个菱形决测框可被映射为一个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个结点,即使该结点并不代表任何语句(例如:if-else-then结构)。由边和结点限定的范围称为区域。计算区域时应包括图外部的范围
-
计算程序环路复杂度
环路复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。独立路径必须包含一条在定义之前不曾用到的边。
-
导出基本路径集,确定程序的独立路径
每个圈与圈之间的连线便是一个独立路径,对于单进单出的节点可以使用连线代替。
-
根据独立路径,设计相应的测试用例
根据上面的独立路径,去设计输入数据。
举例
示例代码
public int binSearch(int arr[], int objectValue) {
int left = 0;
int right = arr.length - 1;
int mid;
while (left < right) {
mid = (right - left) / 2 + left;
if (arr[mid] == objectValue) {
return mid;
} else if (objectValue < arr[mid]) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
-
根据程序设计结果导出程序流程图的控制流图
-
计算环路复杂度
-
导出基本路径集,确定程序的独立路径
基本测试路径:- 1-2-6
- 1-2-3-6
- 1-2-3-4-2
- 1-2-3-5-2
-
设计相应的测试用例
基本路径 | arr | objectValue | return |
---|---|---|---|
1-2-6 | [ ] | 1 | -1 |
1-2-3-6 | [1,2,3] | 2 | 1 |
1-2-3-4-2 | [1,2,3,4,5] | 2 | 1 |
1-2-3-5-2 | [1,2,3,4,5] | 4 | 3 |