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)
還有嗎??
5 C,D,C,I,A,C,E,J(4,6,13,19,22,4,6,8,24)算嗎?
不算,為什么?因為上面的4條路徑已經包括了所有的邊。第5條路徑已經不包含沒有用過的邊了。所有的路徑都遍歷過了。
好了,現在我們有了4條基本獨立路徑根據獨立路徑我們可以設計測試用例。
文章來源于領測軟件測試網 http://www.kjueaiud.com/