
圈中的數字代表的是語句的行號,也許有人問為什么選4,6,13,8......作為結點,第2行,第3行為什么不是結點,因為選擇結點是有規律的。讓我們看程序中;第2行,第3行是按順序執行下來的。直到第4行才出現了循環操作。而2,3行沒有什么判斷,選擇等分支操作,所以我們把2,3,4全部合并成一個結點。其他的也是照這個規則合并,然后就有了上面的流程圖。
2.計算圈復雜度
有了圖以后我們要知道到底我們有寫多少個測試用例,才能滿足基本路徑測試。
這里有有了一個新概念——圈復雜度
圈復雜度是一種為程序邏輯復雜性提供定量測試的軟件度量。將該度量用于計算程序的基本獨立路徑數目。為確保所有語句至少執行一次的測試數量的上界。
公式圈復雜度V(G)=E+N+2,E是流圖中邊的數量,N是流圖中結點的數量。
公式圈復雜度V(G)=P+1 ,P是流圖G中判定結點的數量。
通俗的說圈負責度就是判斷單元是不是復雜,是不是好測試的標準。一般來說如果圈復雜度如果大于20就表示這個單元的可測試性不好,太復雜(也許有人覺得無所謂,但是如果你們公司實行了CMMI5的話,對這個是有規定的)。
從圖中我們可以看到,
V(G)=10條邊-8結點+2=4
V(G)=3個判定結點+1=4
上圖的圈復雜圖是4。這個結果對我們來說有什么意義呢?它表示我們只要最多4個測試用例就可以達到基本路徑覆蓋。
3.導出程序基本路徑。
現在我們知道了起碼要寫4個測試用例,但是怎么設計這4個測試用例?
導出程序基本路徑,根據程序基本路徑設計測試用例子。
程序基本路徑:基本獨立路徑就是從程序的開始結點到結束可以選擇任何的路徑遍歷,但是每條路徑至少應該包含一條已定義路徑不曾用到的邊。(看起來不好理解,讓我們看例子)。
讓我們看上面的流程圖:從結點4到24有幾條路徑呢?
1 B(4,24)
2 C,E,J(4,6,8,24)
3 C,D,F,H,A,B(4,6,13,15,22,4,24)
4 C,D,G,I,A,B(4,6,13,19,22,4,24)
文章來源于領測軟件測試網 http://www.kjueaiud.com/