定義:基本路徑測試法又稱獨立路徑測試,是在程序控制流圖的基礎上,通過分析控制結構的環路復雜性,導出基本可執行路徑集合,從而設計出相應的測試用例的方法。
所謂基本路徑是指程序中至少引進一條新的語句或一個新的條件的任一路徑。
步驟:
1、根據程序設計結果導出程序流程圖的控制流圖;
流程圖用來描述程序控制結構。可將流程圖映射到一個相應的流圖(對于菱形框內的復合條件,要拆分成單一條件)。在流圖中,每一個圓,稱為流圖的結點,代表一個或多個語句。一個處理方框序列和一個菱形決測框可被映射為一個結點,流圖中的箭頭,稱為邊或連接,代表控制流,類似于流程圖中的箭頭。一條邊必須終止于一個結點,即使該結點并不代表任何語句(例如:if-else-then結構)。由邊和結點限定的范圍稱為區域。計算區域時應包括圖外部的范圍
2、計算程序環路復雜度
環路復雜度是一種為程序邏輯復雜性提供定量測度的軟件度量,將該度量用于計算程序的基本的獨立路徑數目,為確保所有語句至少執行一次的測試數量的上界。獨立路徑必須包含一條在定義之前不曾用到的邊。
3、導出基本路徑集,確定程序的獨立路徑
每個圈與圈之間的連線便是一個獨立路徑,對于單進單出的節點可以使用連線代替。
4、根據獨立路徑,設計相應的測試用例
根據上面的獨立路徑,去設計輸入數據。
舉例
示例代碼
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 |